Desidero creare un'API in cui l'utente possa aggiornare il proprio profilo. Nel mio caso, un utente può aggiornare il suo nome utente e la sua password. Per cambiare il suo/il suo profilo, un link API dovrebbe essere /api/change/usernameOfThatUser
. Quando utilizzo un nome utente non esistente nel collegamento, ottengo ancora la pagina API UserProfileChange e le caselle di input non sono piene di dati precedenti. Come posso risolvere questo?aggiornamento profilo utente utilizzando django rest framework api
serializers.py
User = get_user_model()
class UserProfileChangeSerializer(ModelSerializer):
username = CharField(required=False, allow_blank=True, initial="current username")
class Meta:
model = User
fields = [
'username',
'password',
]
def update(self, instance, validated_data):
instance.username = validated_data.get('username',instance.username)
print('instance of username',instance.username)
return instance
views.py
class UserProfileChangeAPIView(UpdateAPIView):
serializer_class = UserProfileChangeSerializer
lookup_field = 'username'
urls.py
url(r'^change/(?P<username>[\w-]+)$', UserProfileChangeAPIView.as_view(), name='changeProfile'),
Cosa vuoi che accada quando usi il nome utente non esistente nel link? –
La tua domanda non ha senso. "Come posso risolvere questo?" << devi dirci quale comportamento è previsto qui perché quello che hai è quello che mi aspetterei. – Linovia
supponiamo che il mio nome utente sia michael, quindi quello che voglio è se voglio cambiare il mio nome utente, quindi farei/api/users/michael e la pagina verrà mostrata con campo nome utente e campo password. Nel campo del nome utente, il mio nome sarà già compilato, quindi lo modificherò e lo salverò. – pri