【问题标题】:QuerySet Error when replacing the User Detail View in django_rest_auth在 django_rest_auth 中替换用户详细信息视图时出现 QuerySet 错误
【发布时间】:2016-11-24 06:27:04
【问题描述】:

我正在尝试使用 django_rest_auth 创建自定义用户和配置文件,并按照常见问题解答中有关创建用户序列化程序的文档进行操作,但对更改用户视图感到困惑。

现在,我尝试将django_rest_auth 中的UserDetailsView 替换为一个名为CustomUserDetailsView 的自定义@,可以使用与以前用户类似的URL 访问:url(r'^user/$', views.CustomUserDetailsView.as_view(), name=...),目前是一个精确的副本rest_auth.views.UserDetailsView,但将 serializer_class 分配给自定义 UserDetailsS​​erializer,并且在进行 GET 调用时遇到错误:

AssertionError: 'CustomUserDetailsView' should either include a
`queryset` attribute, or override the `get_queryset()` method.

错误消息很清楚我应该做什么,在我的自定义 UserDetailsView 视图中包含queryset 属性或覆盖get_queryset() 方法,但为什么rest_auth.views.UserDetailsView 不需要这样做?

非常感谢您的回答。

【问题讨论】:

    标签: django-views django-rest-framework django-rest-auth


    【解决方案1】:

    这是因为视图实现了get_object,它的优先级高于get_queryset。这就是它起作用的原因。

    在 DRA 中,您也可以简单地覆盖 USER_DETAILS_SERIALIZER 设置。查看文档了解更多详情:http://django-rest-auth.readthedocs.io/en/latest/configuration.html

    【讨论】:

      【解决方案2】:

      在你的models.py中:

      删除以下行:

      from django.contrib.auth.models import User
      

      而是有以下几行:

      # Default user model may get swapped out of the system and hence.
      #from django.contrib.auth.models import User
      from django.contrib.auth import get_user_model
      User = get_user_model()
      

      【讨论】:

        猜你喜欢
        • 2016-05-14
        • 2021-06-29
        • 2011-06-30
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 2014-06-02
        • 2019-01-18
        • 2014-10-04
        相关资源
        最近更新 更多