#django #django-users
Вопрос:
У меня есть api обновления пользователей, который должен обновлять данные пользователя. Я использовал set_password() для шифрования пароля, и, судя по моим заявлениям о печати, он, похоже, шифруется нормально. Однако, когда я сохраняю обновленного пользователя, пароль по-прежнему сохраняется в виде обычного текста. Что я здесь упускаю ? печать(пользователь.пароль) дает мне
pbkdf2_sha256$216000$26YKhuRQ4i4S$HnfbowEjappYtP7nbbMZJXcjLi13sWPpj1EqjEbUutI=
Тем не менее, когда я возвращаю пользователя, он сохраняет пароль в виде обычного текста.
class UserDetail(APIView):
def get_user(self, pk):
try:
return User.objects.get(pk=pk)
except User.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
def put(self, request, pk, format=None):
user = self.get_user(pk)
data = request.data
new_password = data["password"]
user.set_password(new_password)
user.save()
print(user.password)
serializers = UserSerializer(user, request.data)
if serializers.is_valid():
serializers.save()
return Response(serializers.data)
else:
return Response(serializers.errors, status=status.HTTP_400_BAD_REQUEST)
Комментарии:
1. Какую ценность вы видите?
2. @bdbd Проверьте изменения
3. На самом деле этого и следовало ожидать. Вы можете посмотреть здесь для получения дополнительной информации о том, что означает эта строка
4. Итак, есть ли способ сохранить его в виде хэша вместо обычного текста ?