首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Djoser -覆盖注册

Djoser -覆盖注册
EN

Stack Overflow用户
提问于 2021-02-04 06:12:58
回答 1查看 373关注 0票数 2

我对如何修改Djoser的注册端点感到困惑。我想要做的就是向端点添加作用域限制,但我不明白如何覆盖它。文档上的这一页谈到了它:https://djoser.readthedocs.io/en/2.1.0/adjustment.html,但它似乎过时了?现在如何使用UserViewSet来做这件事&确保url按预期工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 15:24:35

你能做的就是继承djoser UserViewSet的子类并添加额外的代码。像这样的东西应该是可行的

代码语言:javascript
复制
# your_views.py

from djoser.views import UserViewSet as DjoserUserViewSet


class UserViewSet(DjoserUserViewSet):

    def get_throttles(self):
        if self.action == "create":
            self.throttle_classes = [YourThrottleClass]
        return super().get_throttles()

然后,在您的urls.py中,您不应该在urlpatterns中包含djoser.urls

而不是这个(取自他们的文档,你可能有其他的url):

代码语言:javascript
复制
urlpatterns = [
    (...),
    url(r'^auth/', include('djoser.urls')),
]

在您的urlpatterns中执行此操作(您可能已经定义了路由器):

代码语言:javascript
复制
# I have use endpoint "auth/users" to keep it similar to the above, but it can be just simple "users"

router = DefaultRouter()
router.register("auth/users", your_views.UserViewSet)  

urlpatterns = [
    (...),
    url(r'^', include(router.urls)),
]

在幕后,djoser.urls注册users端点,但使用其内部UserViewSet,因此通过这种方式,您可以使用自己的自定义类。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66036497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档