Django-在将传入数据保存为对象之前要重写的create()方法

时间:2020-03-25 11:32:40

标签: python django serialization django-rest-framework

我的models.py文件中具有以下模型:

class Video(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    text = models.CharField(max_length=100, blank=True)
    video = models.FileField(upload_to='Videos/',
                              blank=True)
    gif = models.FileField(upload_to='Images/',
                              blank=True)

    class Meta:
        ordering = ('created', )

在Django创建此模型的实例之前,我想在Django站点上设置gif字段。 因此,数据是通过设置了video字段从客户端站点发送到Django的,并且基于video字段的内容,我想填充gif字段。

为此,我需要重写哪个create()方法来执行此任务? 我在create()中的VideoSerializer类的serializers.py方法:

def create(self, validated_data):
        return Video(**validated_data)

或者我的VideoCreate中的views.py类的create()方法:

class VideoCreate(generics.CreateAPIView):
    queryset = Video.objects.all()
    serializer_class = VideoSerializer
    parser_classes = (MultiPartParser, )

    def create(self, request, *args, **kwargs):

        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

希望有人可以提供帮助

0 个答案:

没有答案