在管理员和用户混用一张表的情况下,生产环境中应该使用Django Admin 吗?
我是Django的新手。
在生产环境中,我们是否应该把管理员和用户放在同一个表里使用Django的后台管理系统呢?
我正在写的这个应用里,有三种类型的人:
管理员:
- 超级管理员拥有所有的读写权限
- 内容提供者的管理员有有限的读写权限
普通用户:
- 内容提供者(有限的写权限)
- 订阅者(只有读权限,可以更改一些设置,比如用户偏好和订阅)
如果用户和管理员在同一个表里,那我们是不是应该为普通用户单独做一个登录界面,而不是用管理员的登录界面呢?
也就是说,不是用:
url(r'^admin/', include(admin.site.urls))
我会创建一个新的模块,使用类似这样的代码:
url(r'^login/', include(login.urls))
还是应该使用:
url(r'^login/', include(admin.site.urls))
谢谢大家的帮助。
1 个回答
3
在一个表格里混合不同权限的用户是没问题的。权限系统会控制这些用户能做什么,不能做什么。用户对象有一个叫 is_staff
的属性:
is_staff 是一个布尔值。它表示这个用户是否可以访问管理后台。
你可以为你的用户(也就是你的观众)创建一个单独的登录界面。这可以通过多种方式实现。你可以看看这个链接了解更多信息: https://docs.djangoproject.com/en/1.6/topics/auth/default/
Django 自带了一个登录界面: https://github.com/django/django/blob/master/django/contrib/auth/views.py
在 urls.py 文件中:
(r'^login/$', 'django.contrib.auth.views.login'),