在管理员和用户混用一张表的情况下,生产环境中应该使用Django Admin 吗?

0 投票
1 回答
1354 浏览
提问于 2025-04-17 20:28

我是Django的新手。

在生产环境中,我们是否应该把管理员和用户放在同一个表里使用Django的后台管理系统呢?

我正在写的这个应用里,有三种类型的人:

管理员:

  1. 超级管理员拥有所有的读写权限
  2. 内容提供者的管理员有有限的读写权限

普通用户:

  1. 内容提供者(有限的写权限)
  2. 订阅者(只有读权限,可以更改一些设置,比如用户偏好和订阅)

如果用户和管理员在同一个表里,那我们是不是应该为普通用户单独做一个登录界面,而不是用管理员的登录界面呢?

也就是说,不是用:

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'),

撰写回答