Как сделать поле редактируемым при создании и только для чтения при обновлении в Django REST framework - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу реализовать некое постоянное поле модели Джанго.Я хочу, чтобы поле было установлено при создании экземпляра модели (через API REST framework), но при обновлении это поле должно быть запрещено изменять.Есть ли элегантный способ сделать это в самом Django или в опциях сериализатора фреймворка REST?

1 Ответ

0 голосов
/ 14 ноября 2018

Переопределить метод __init__() сериализатора как,

class MySerializer(serializers.ModelSerializer):
    myfield = serializers.CharField()

    <b>def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        if self.context['view'].action == 'create':
            self.fields['myfield'].write_only = True</b>
...