Django - какой метод create () переопределить перед сохранением входящих данных как объекта - PullRequest
0 голосов
/ 25 марта 2020

В моем файле 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 создаст экземпляр этой модели, я хочу установить поле gif на сайте Django , Итак, данные поступают на Django с клиентского сайта с установленным полем video, и на основе содержимого поля video я хочу заполнить поле gif.

Для того, что create() метод мне нужно переопределить для этой задачи? Метод create() моего VideoSerializer класса в serializers.py:

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

Или метод create () моего VideoCreate класса в views.py:

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)

Надеюсь, что кто-то может помочь

...