Поле DateTimeField в Django является None в сериализаторе

Я использую DRF и у меня есть модель Bid, у меня есть DateTimeField у которого есть auto_now_add и когда я отправляю данные из Postman соответственно я не отправляю время. и затем я хочу подтвердить это время в функции сериализатора validate но когда я вызываю это время, оно None. что я могу сделать, чтобы получить время в сериализаторе?

я отправляю данные следующим образом

    {
        "user": 12,
        "product": 5
    }

вот мой код ->

class Bid(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_('მომხმარებელი'))
    product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True, blank=True, verbose_name=_('პროდუქტი'))
    price = models.IntegerField(default=0)
    time = models.DateTimeField(auto_now_add=True, verbose_name=_('დრო'))

    def __str__(self):
        return self.product.name

    def save(self, *args, **kwargs):
        if self.price == 0:
            self.product.current_price += 1
            self.product.save()
            self.price = self.product.current_price
        else:
            self.product.current_price += self.price
            self.product.save()

        super(Bid, self).save(*args, **kwargs)

view

class BidView(generics.ListCreateAPIView):
    serializer_class = BidSerializer
    queryset = Bid.objects.all()

    def post(self, request, *args, **kwargs):
        serializer = self.serializer_class(data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response(serializer.data)

сериализатор

class BidSerializer(serializers.ModelSerializer):
    class Meta:
        model = Bid
        fields = '__all__'

    def validate(self, data):
        all_bids = Bid.objects.filter(product=data.get('product').id).last()

        print(data.get('time')) <--- this is None

        if data.get('price'):
            if data.get('product').current_price > data.get('price'):
                raise ValidationError({"price_error": "შენი შეთავაზება მიმდინარე ფასზე ნაკლებია"})

        return data

Здесь атрибут auto_now_add предназначен только для модели при сохранении. Он не имеет никакого отношения к сериализатору.

Когда поле установлено в значение auto_now_add, сериализатор не проверяет, есть ли поле в полезной нагрузке JSON, поскольку оно будет сохранено автоматически.

Вернуться на верх