我正在写一个简单的Django应用程序。我有一个索引页面和帐户部分,只有当用户登录时才能看到帐户部分。
问题是,account部分有很多“子”网址,例如/accounts,/accounts/create,/accounts/update,/accounts/home等。
目前,我正在使用login_required装饰器和其他一些测试,但是当我在每个视图上编写mixin和装饰器时,代码看起来很混乱。
有没有一种简单的方法可以阻止一个用户的url及其所有子url?
urlpatterns = [
path('',views.index_view,name="index"),
url(r'^login/$', auth_views.LoginView.as_view(template_name='login.html'
,form_class=forms.AuthenticationForm), name='login'),
url(r'^logout/$', auth_views.LogoutView.as_view(), name='logout'),
path('accounts/',views.SellerRegister.as_view(),name="register_seller"),
path('accounts/address_create/',views.address_create,name="address_create"),
path('accounts/register_buyer/',views.register_buyer,name="register_buyer"),
]
字符串
2条答案
按热度按时间pgccezyw1#
登录所需的装饰器应该在这里工作。
字符串
您也可以直接在urls.py中使用装饰器
型
如果你正在使用CBV,你可以尝试使用Permission Mixins。
型
xkrw2x1b2#
我还没有尝试过,但我可能会尝试用中间件来解决这个问题,简单地说:
settings.py
字符串
some_app/middleware.py
型
当然,在settings.py的MIDDLEWARE中添加中间件。这只是一个快速的答案,我还没有尝试过。