关于url的简单Django权限

时间:2015-05-09 17:51:05

标签: python django permissions

我不是Django开发人员,但我认为Django有一种简单的方法来为我的项目分配权限。我会非常感谢任何帮助。

url.py

urlpatterns = patterns('',
# Kad
url(r'^$', table),
url(r'^table/$', table),
url(r'^select_region/(\d{1,5})/$', select_region),

view.py

@login_required
def table(request, knt='rateless' , pn=1):
    context = {}
    context['knt'] = knt
    ...

admin.py

class ManagerInline(admin.StackedInline):
    model = Manager
    can_delete = False
    verbose_name_plural = u'Staff'

class UserAdmin(UserAdmin):
    inlines = (ManagerInline, )

models.py

class Manager(models.Model):
    user = models.OneToOneField(User)
    phone = models.CharField(max_length=20, verbose_name=u'Phone', blank=True, null=True)
    email = models.EmailField(max_length=50, verbose_name=u'E-mail', blank=True, null=True)
    skype = models.CharField(max_length=50, verbose_name=u'Skype', blank=True, null=True)
    social_name = models.CharField(max_length=10, verbose_name=u'Social name', blank=True, null=True)
    social_url = models.URLField(verbose_name=u'Url for social name', blank=True, null=True)
    position = models.CharField(max_length=1, verbose_name=u'Position', choices=Position_choices, default='M')
    region = models.ManyToManyField(Region, verbose_name=u'Region', blank=True, null=True)

    def __unicode__(self):
        return self.user.username

任何html

                {% if request.user.manager.position != 'E' %}
                <th>Name</th>
                {% endif %}

settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    'dajaxice',
    'dajax',
    'south',
    'webodt',
    'djrill',
    'datetimewidget',
    'kad',
    'djcelery',
    'calls',
    'proj',
)

我无法理解如何:

  1. 创建群组并添加到此群组用户,例如user.manager.position ='E'添加到群组'E'。
  2. 根据网址添加群组权限,例如,如果某人来自group ='E',则拒绝url(r'^ table / $',table)返回主页。
  3. 授权后为每个组主URL(主页)设置,例如group ='E'设置主页url(r'^ proj / list /$').

0 个答案:

没有答案