Я использую Django REST Framework (DRF) для создания конечной точки, с помощью которой я могу зарегистрировать новых пользователей. Однако, когда я удаляю конечную точку создания POST, новый пользователь сохраняется через сериализатор, но пароль сохраняется в открытом виде в базе данных. Код для моего сериализатора выглядит следующим образом:Почему не мой пароль пользователя модели Django?
from django.contrib.auth import get_user_model
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = ['password', 'username', 'first_name', 'last_name', 'email']
read_only_fields = ['is_staff', 'is_superuser']
write_only_fields = ['password']
Пожалуйста, обратите внимание, что я использую модель пользователя по умолчанию из пакета Идент Django, и я очень новый для работы с ФПИ! Кроме того, я нашел this question, который предлагает решение, но для этого требуется два взаимодействия с базой данных: я не считаю, что это эффективно, но это может быть неправильным допущением с моей стороны.
Вот еще одно решение, которое переопределяет 'perform_create' и' perform_update': http://stackoverflow.com/questions/27468552/changing-serializer-fields-on-the-fly/#answer-27471503 –