小编Lua*_*uan的帖子

django 休息框架 RetrieveUpdateAPIView

我来自越南。

我想通过 Django Rest FrameWork 更新用户。我可以通过“pk”更新用户。但我无法通过“用户名”更新用户。我希望大家帮助我。太感谢了。

序列化器.py

class UserDetailSerializer(serializers.ModelSerializer):
    url_update = serializers.HyperlinkedIdentityField(view_name='api:UserUpdateAPIView', lookup_field='username')
    class Meta:
        model = User
        fields = ('url_update', 'username', 'email', 'user_permissions', 'is_staff', 'groups', 'last_login')

class UserUpdateSerialier(serializers.ModelSerializer):
    password = serializers.CharField(
        style={'input_type': 'password'}
    )
    class Meta:
        model = User
        fields = ('pk', 'username', 'password')

    def update(self, instance, validated_data):
        instance.username = validated_data.get('username', instance.username)
        instance.set_password(validated_data.get('password', instance.password))
        instance.save()
        return instance
Run Code Online (Sandbox Code Playgroud)

视图.py

class UserDetailAPIView(generics.RetrieveAPIView):
    permission_classes = (permissions.IsAdminUser,)
    serializer_class = UserDetailSerializer
    #queryset = User.objects.all()
    lookup_field = 'username'
    def get_object(self):
        username = self.kwargs["username"]
        return get_object_or_404(User, …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

django ×1

django-rest-framework ×1