web-dev-qa-db-ja.com

Django残りのフレームワークDateField形式

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は画像をご覧ください

6
Jackquin

これに関するDRFのドキュメント をご覧ください。基本的にformatは出力のみを扱いますが、入力には_input_formats_を含める必要があります-あなたの場合はschedule_date = serializers.DateField(format="%d-%m-%Y", input_formats=['%d-%m-%Y', 'iso-8601'])を行うことができます

Iso-8601をそこに保持するかどうかはあなた次第です。

11
Thomas Jiang