DateTimeField, выбрасывающее datetime, не является сериализуемым
Я добавил новое поле Datetime в свою модель.
class MyModel:
valid_upto = models.DateTimeField(auto_now=True, blank=True, null=True)
а мой код сериализатора таков
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = '__all__'
При обновлении одного экземпляра я получаю TypeError: Object of type datetime is not JSON serializable
.
значение, которое может прийти в valid_upto это None
или значение времени, которое я получаю из timezone.now()
Возможно, вы ошиблись с атрибутом поля. Подробнее здесь: https://docs.djangoproject.com/en/4.1/ref/models/fields/#django.db.models.DateField.auto_now
class MyModel:
valid_upto = models.DateTimeField(auto_now=True, auto_now_add=True)
По умолчанию это поле имеет значение not editable
. И serializer
должен его проверять.
Но если вы хотите, вы можете удалить это поле вручную:
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
exclude = ('valid_upto', )