Сериализатор модели Django Rest Framework: установите все поля только для чтения, кроме одного - PullRequest
0 голосов
/ 14 сентября 2018

Модель, которую я использую, имеет много полей. Я хочу иметь возможность установить все поля только для чтения, кроме одного, т. Е. Я хочу разрешить только одно конкретное поле для записи. Есть ли ярлык для этого? Мне известно только об использовании «read_only_fields = ('x', 'y')», и я действительно не хочу печатать все поля, особенно если я собираюсь внести изменения в модели позже. «Exclude =» также не применяется в этом случае.

1 Ответ

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

Попробуйте переопределить метод __init__ сериализатора:

def __init__(self, *args, **kwargs):
    super(UserSerializer, self).__init__(*args, **kwargs)
    for field in self.fields:
        if field != 'some_required_filed':
            self.fields[field].read_only = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...