Comment gérer l'enregistrement des utilisateurs et l'API en utilisant django_rest_framework? Plus précisément, comment pourrais-je mettre en place un champ de mot de passe dans le UserSerializerComment gérer l'enregistrement des utilisateurs sur l'API basée sur django_rest_framework
class NewUserSerializer(serializer.Serializers):
first_name = serializers.CharField(required=True, max_length=30)
last_name = serializers.CharField(required=True, max_length=30)
username = serlializers.CharField(required=True, max_length=30)
email = serializers.EmailField(required=True)
password = ???
def restore_object(self, attrs, instance=None):
if instance:
instance.username = attrs.get('username', instance.username)
instance.first_name = attrs.get('first_name', instance.first_name)
instance.last_name = attrs.get('last_name', instance.last_name)
instance.email = attrs.get('email', instance.email)
# Would the instance.password field be necessary?
instance.password = attrs.get('password', instance.password)
else:
return User(**attrs)
Pourquoi ne pas ajouter une méthode restore_object? Que se passe-t-il si un utilisateur décide de changer son adresse e-mail ou son mot de passe? – user1876508
J'étais juste méchant si c'était pour l'enregistrement cette logique peut sortir du sérialiseur. de toute façon, si vous voulez qu'il retourne l'instance réelle de l'objet Utilisateur et que vous vous souciez d'un mot de passe, utilisez simplement CharField pour le mot de passe et dans restore_object utilisez une méthode set_password, pas une affectation directe. – Aldarund