gpt4 book ai didi

django-rest-framework - Djoser - 覆盖注册

转载 作者:行者123 更新时间:2023-12-05 02:45:15 25 4
gpt4 key购买 nike

我对如何修改 Djoser 的注册端点感到困惑。我想做的就是向端点添加范围限制,但我不明白如何覆盖它。文档上的这个页面讨论了它:https://djoser.readthedocs.io/en/2.1.0/adjustment.html但它似乎过时了?今天如何使用 UserViewSet 完成并确保 url 按预期工作?

最佳答案

您可以做的是子类化 djoser UserViewSet 并添加您的额外代码。像这样的东西应该可以工作

# 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

取而代之的是(取自他们的文档,您可能有其他网址):

urlpatterns = [
(...),
url(r'^auth/', include('djoser.urls')),
]

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

# 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 所以这样你可以使用你自己的自定义类.

关于django-rest-framework - Djoser - 覆盖注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66036497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com