我不是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',
)
我无法理解如何: