【发布时间】:2016-11-28 03:51:27
【问题描述】:
我定义了几个网址:
url(r'^board/$', TemplateView.as_view(template_name='recruit/board.html'), name='recruit_board'),
url(r'^job/$', login_required(TemplateView.as_view(template_name='recruit/job_detail.html')), name='job_detail'),
url(r'^company/$', login_required(TemplateView.as_view(template_name='recruit/company_detail.html')), name='company_detail'),
...而我设计的用户有两种帐户类型:A 或 B。
"job" url 只能由 A 帐户类型的用户访问,而“company” url 只能由 B 帐户类型的用户查看。如果用户尝试访问错误的 url,它将被重定向到“board” url。
我使用了 login_required 装饰器,并且我知道 user_passes_test,但我不知道如何从这里继续。我可以写一个像 login_required 一样工作的新装饰器并得到我想要的吗?
【问题讨论】:
-
您的“帐户类型”是如何实现的?你在使用Django's Permissions and Authorization 系统吗?
-
@Chris 否,帐户类型和其他与用户相关的特征在名为 Profile 的新模型中定义,与用户对象相关。
-
@KirChou 我该如何编写这个 is_company 装饰器?我该怎么做才能将其重定向到“板”网址?你能再具体一点吗?赞赏。