Django rest framework: отображение поля как только для чтения в json модуле визуализации - PullRequest
0 голосов
/ 29 мая 2020

Я использую React для динамического отображения таблицы из JSON, сериализованной DRF. Только некоторые столбцы предназначены для редактирования пользователем, остальные доступны только для чтения. Я бы хотел, чтобы сериализатор указывал, какое из полей доступно только для чтения, а не явно устанавливал его в приложении React.

Допустим, у меня есть такой сериализатор:

class Test_Serializer(serializers.ModelSerializer):

    class Meta:
        model = Change_Ticket
        fields = ['change_id','date','title','description'] 
        read_only_fields = ['change_id']
        extra_kwargs = {'change_id':{'read_only':True}}

Я бы хотел, чтобы результат был примерно таким:

[
    {
        "change_id": { 
            "CHG000001":
                {"read_only":True}
            }
        "date": "2020-05-21",
        "title": "Change Title goes here",
        "description": "Change Description"
    }
]

К сожалению, ни read_only_fields, ни extra_kwargs работают, поскольку они, кажется, не влияют на визуализированный JSON. Ключевое слово style, кажется, применимо только при рендеринге в html, а не в JSON.

Просто интересно, есть ли простой способ добиться этого, или мне придется вручную кодировать это поведение с помощью to_presentation метод?

...