Django как сделать CustomTimeField с учетом часовых поясов?
from django.db import models
class CustomTimeField(models.DateTimeField):
....
Цель: Мне нужно хранить дату в форме datetime, но мне нужно, чтобы это поле возвращало только час:минуту:секунду и исключало все остальное.
Я связал: обработать это в сериализаторах, но я использую три сериализатора для одной модели, так что это может быть трудно сделать, особенно когда я пытался использовать один сериализатор и переопределить его для каждого использования.
ну я не думаю, что изменение поведения поля будет хорошей идеей. вместо этого вы можете определить виртуальное поле, которое возвращает время в вашем любимом формате и использовать его в вашем сериализаторе
ваша модель:
class AModel(models.Modle):
date_time_field = models.DateTimeField()
@property
def custom_time(self):
return self.date_time_field.strftime("%H:%M:%S")
ваш сериализатор:
class ASerializer(serializers.ModelSerializer):
custom_time = serializers.CharField(read_only=True)
class Meta:
model = AModel
fields = ('custom_time',)