我想创建一个API,用户可以在其中更新他们的配置文件。在我的情况下,用户可以更新他/她的用户名和密码。要更改他/她的个人资料,API链接应为/api/change/usernameOfThatUser
。当我在链接中使用不存在的用户名时,我仍然得到userProfileChange API页面,并且输入框未填充以前的数据。我该如何解决这个问题?使用Django rest框架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