Ich möchte eine API erstellen, wo Benutzer ihr Profil aktualisieren können. In meinem Fall kann ein Benutzer seinen Benutzernamen und sein Passwort aktualisieren. Um sein/ihr Profil zu ändern, sollte ein API-Link /api/change/usernameOfThatUser
sein. Wenn ich einen nicht vorhandenen Benutzernamen in der Verknüpfung verwende, erhalte ich immer noch die API-Seite userProfileChange, und die Eingabefelder sind nicht mit vorherigen Daten gefüllt. Wie kann ich das lösen?Aktualisierung Benutzerprofil mit 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'),
Was möchten Sie tun, wenn Sie einen nicht vorhandenen Benutzernamen im Link verwenden? –
Ihre Frage ergibt keinen Sinn. "Wie kann ich das lösen?" << Sie müssen uns sagen, welches Verhalten hier erwartet wird, weil das, was Sie haben, das ist, was ich erwarte. – Linovia
Angenommen, mein Benutzername ist Michael dann was ich will ist, wenn ich meinen Benutzernamen ändern möchte, dann würde ich tun/api/users/michael und die Seite wird mit Benutzername Feld und Passwort Feld angezeigt werden. Im Benutzernamenfeld ist mein Name bereits ausgefüllt, ich würde ihn dann bearbeiten und speichern. – pri