Я хочу создать API, в котором пользователь может обновить свой профиль. В моем случае пользователь может обновить свое имя пользователя и пароль. Чтобы изменить свой профиль, ссылка API должна быть /api/change/usernameOfThatUser
. Когда я использую несуществующее имя пользователя в ссылке, я по-прежнему получаю страницу API API-интерфейса пользователя, а поля ввода не заполняются предыдущими данными. Как я могу это решить?Обновление профиля пользователя с помощью 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'),
Что вы хотите, когда используете неиспользуемое имя пользователя в ссылке? –
Ваш вопрос не имеет смысла. «Как я могу это решить?» << вам нужно сказать нам, какое поведение ожидается здесь, потому что тот, который у вас есть, тот, которого я ожидал бы. – Linovia
Предположим, что мое имя пользователя - michael, тогда я хочу, если я хочу изменить свое имя пользователя, тогда я бы сделал/api/users/michael, и страница будет показана с полем имени пользователя и паролем. В поле имени пользователя мое имя будет уже заполнено, тогда я отредактирую его и сохраню. – pri