Ошибка в методе обновления Django drf ModelSerializer
У меня очень странная ошибка, это мой класс сериализатора
class user_ser(ModelSerializer):
class Meta:
model = User
fields = '__all__'
depth = 1
когда я отправляю запрос API для обновления данных пользователя, я получаю значения по умолчанию для is_staff и is_superuser
на изображении ниже я отправляю только email и пароль
посмотрите, что у меня есть :(
)это подтвержденные_данные для метода обновления :
Я не добавлял is_staff или что-то еще в тело запроса, так почему это происходит.
Это нормальное поведение; is_staff
и is_superuser
- поля по умолчанию в Django, используемые для авторизации пользователей-администраторов. Вы можете представить их как столбцы в БД.
Настоящая проблема возникает из-за использования fields = '__all__'
в классе Meta.
Это анти-паттерн, поскольку вы можете раскрыть поля, которые вы не собирались раскрывать. Вы должны явно отображать поля, которые вы собираетесь использовать.
Явное лучше неявного.