<p><b>我需要什么来授予每个用户权限?</b></p>
<p>在这里,您需要为每种类型的用户(<a href="https://docs.djangoproject.com/en/dev/topics/auth/default/#groups" rel="nofollow">https://docs.djangoproject.com/en/dev/topics/auth/default/#groups</a>)设置一个组。E、 G.“超级用户”、“普通用户”和“受限用户”。可以在Django管理控制台中创建这些组,然后可以使用相同的Django管理控制台(<a href="https://docs.djangoproject.com/en/dev/topics/auth/default/#managing-users-in-the-admin" rel="nofollow">https://docs.djangoproject.com/en/dev/topics/auth/default/#managing-users-in-the-admin</a>)将每个用户分配到各自的组。在</p>
<p><b>如何将每个面板重定向到各自的用户?</b></p>
<p>您将需要定义一个RedirectView,它根据用户分配的组(<a href="https://docs.djangoproject.com/en/dev/ref/class-based-views/base/#redirectview" rel="nofollow">https://docs.djangoproject.com/en/dev/ref/class-based-views/base/#redirectview</a>)将用户的请求转发到预期的“panel”视图。在</p>
<pre><code>from django.core.urlresolvers import reverse
from django.views.generic.base import RedirectView
from articles.models import Article
class PanelRedirectView(RedirectView):
def get_redirect_url(self, *args, **kwargs):
user = self.request.user
if user.groups.filter(name='superuser').count():
return reverse('superuser-panel')
elif user.groups.filter(name='regular_user').count():
return reverse('regular-user-panel')
else:
return reverse('restricted-user-panel')
</code></pre>
<p>然后可以使用Joran描述的注释来限制对重定向到的特定视图的访问。我描述的示例使用基于限制的用户组,而他的回答使用基于用户权限的限制。在处理类似于您所描述的简单权限方案时,这更多的是个人偏好。在</p>
<p><strong>*更多详情*</strong></p>
<p>要在登录时重定向用户。。。在</p>
<ol>
<li><p>在中为重定向视图创建命名的url网址.py在</p>
<p>url(r“^panel redirect/$”,PanelRedirectView.as_视图(),name=“panel redirect”),</p></li>
<li><p>在中更改登录\u重定向\u URL设置.py登录时指向此重定向视图</p>
<p>LOGIN_REDIRECT_URL=reverse('panel-REDIRECT')</p></li>
</ol>
<p>当用户登录时,他们将被重定向到RedirectView,而RedirectView又会根据他/她的分配组将其重定向到正确的面板</p>