使用Django Rest Framework API更新用户个人资料

我想创建一个API,用户可以在其中更新其个人资料。就我而言,用户可以更新他/她的用户名和密码。要更改其个人资料,API链接应为/api/change/usernameOfThatUser当我在链接中使用不存在的用户名时,仍会获得userProfileChange 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'),
日本

也许尝试在您的views.py中执行类似的操作

from rest_framework import generics, mixins, permissions

User = get_user_model()

class UserIsOwnerOrReadOnly(permissions.BasePermission):
    def has_object_permission(self, request, view, obj):
        if request.method in permissions.SAFE_METHODS:
            return True
        return obj.id == request.user.id

class UserProfileChangeAPIView(generics.RetrieveAPIView,
                               mixins.DestroyModelMixin,
                               mixins.UpdateModelMixin):
    permission_classes = (
        permissions.IsAuthenticated,
        UserIsOwnerOrReadOnly,
    )
    serializer_class = UserProfileChangeSerializer
    parser_classes = (MultiPartParser, FormParser,)

    def get_object(self):
        username = self.kwargs["username"]
        obj = get_object_or_404(User, username=username)
        return obj

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)

    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

这将根据url中传递的用户名为您提供该用户的所有现有数据。如果用户名不存在,将引发404错误。您也可以更新或删除对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Django Rest Framework API更新用户个人资料

来自分类Dev

使用PowerShell更新用户的Microsoft个人资料图片

来自分类Dev

无法使用update_attributes更新用户个人资料

来自分类Dev

如何在Django Rest Framework中更新用户密码?

来自分类Dev

django rest-auth获取用户个人资料

来自分类Dev

django 更新用户资料的网址

来自分类Dev

Django Rest Framework API

来自分类Dev

如何使用Django Rest Framework更新OneToOneField

来自分类Dev

如何使用 Microsoft Graph 365 Rest API 更新用户配置文件

来自分类Dev

使用 Rest API 在 Azure DevOps 中创建新用户

来自分类常见问题

Django Rest Framework部分更新

来自分类Dev

Django Rest Framework API权限

来自分类Dev

表单不会更新用户个人资料

来自分类Dev

在与iOS解析时更新用户个人资料?

来自分类Dev

Dnn 8:更新用户个人资料

来自分类Dev

在Laravel 5.1中更新用户个人资料

来自分类Dev

使用django-rest-framework自动“由用户创建”字段?

来自分类Dev

Django REST Framework - 使用信号扩展用户模型的问题

来自分类Dev

在Django Rest Framework中使用PUT更新外键

来自分类Dev

如何使用图像字段更新对象-Django Rest Framework

来自分类Dev

在Django Rest Framework中创建或更新(使用PUT)

来自分类Dev

如何在Django Rest Framework中使用SerializerMethodField更新

来自分类Dev

Django Rest Framework不使用UpdateAPIView更新ImageField

来自分类Dev

在Django Rest Framework中使用PUT更新外键

来自分类Dev

使用JavaScript和REST API检索LinkedIn个人资料图片

来自分类Dev

编辑我的个人资料页面不更新用户个人资料

来自分类常见问题

如何使用Django Rest Framework创建登录API?

来自分类Dev

使用KnockoutJs遍历嵌套的Django REST Framework API

来自分类Dev

每个用户请求的Django Rest Framework指标

Related 相关文章

  1. 1

    使用Django Rest Framework API更新用户个人资料

  2. 2

    使用PowerShell更新用户的Microsoft个人资料图片

  3. 3

    无法使用update_attributes更新用户个人资料

  4. 4

    如何在Django Rest Framework中更新用户密码?

  5. 5

    django rest-auth获取用户个人资料

  6. 6

    django 更新用户资料的网址

  7. 7

    Django Rest Framework API

  8. 8

    如何使用Django Rest Framework更新OneToOneField

  9. 9

    如何使用 Microsoft Graph 365 Rest API 更新用户配置文件

  10. 10

    使用 Rest API 在 Azure DevOps 中创建新用户

  11. 11

    Django Rest Framework部分更新

  12. 12

    Django Rest Framework API权限

  13. 13

    表单不会更新用户个人资料

  14. 14

    在与iOS解析时更新用户个人资料?

  15. 15

    Dnn 8:更新用户个人资料

  16. 16

    在Laravel 5.1中更新用户个人资料

  17. 17

    使用django-rest-framework自动“由用户创建”字段?

  18. 18

    Django REST Framework - 使用信号扩展用户模型的问题

  19. 19

    在Django Rest Framework中使用PUT更新外键

  20. 20

    如何使用图像字段更新对象-Django Rest Framework

  21. 21

    在Django Rest Framework中创建或更新(使用PUT)

  22. 22

    如何在Django Rest Framework中使用SerializerMethodField更新

  23. 23

    Django Rest Framework不使用UpdateAPIView更新ImageField

  24. 24

    在Django Rest Framework中使用PUT更新外键

  25. 25

    使用JavaScript和REST API检索LinkedIn个人资料图片

  26. 26

    编辑我的个人资料页面不更新用户个人资料

  27. 27

    如何使用Django Rest Framework创建登录API?

  28. 28

    使用KnockoutJs遍历嵌套的Django REST Framework API

  29. 29

    每个用户请求的Django Rest Framework指标

热门标签

归档