DateFieldを含むdrfモデルがあります。そのフィールドのデフォルト形式は「YYYY-MM-DD」です。「DD-MM-YYYY」をどのように変換したいのですか。
models.py
class Reminder(BaseModel):
content = models.TextField()
schedule_date = models.DateField()
schedule_time = models.TimeField()
is_release = models.BooleanField(default=True)
serializer.py
class ReminderSerializer(HyperlinkedModelSerializer):
schedule_date = serializers.DateField(format="%d-%m-%Y")
class Meta:
model = Reminder
fields = ('id','content','created_at','schedule_date','schedule_time','user_id','is_release','is_deleted',)
serializer.pyでフォーマットを指定するだけですが、そのフォーマットはリストページでのみ変換されます。ご覧のとおり、リストは問題ありませんが、POSTアクションフィールドは変換されません。 APIは画像をご覧ください
これに関するDRFのドキュメント をご覧ください。基本的にformat
は出力のみを扱いますが、入力には_input_formats
_を含める必要があります-あなたの場合はschedule_date = serializers.DateField(format="%d-%m-%Y", input_formats=['%d-%m-%Y', 'iso-8601'])
を行うことができます
Iso-8601をそこに保持するかどうかはあなた次第です。