我想显示一个模型在后台管理只给超级用户,而不是工作人员用户,这是可能的?
示例:
check which user is logged
if superuser
admin.site.register(model_1)
admin.site.register(model_2)
admin.site.register(model_3)
...
if staff_user
admin.site.register(model_1) #show only one model in the admin
谢谢
3条答案
按热度按时间jei2mxaa1#
这样做是行不通的,
admin.py
模块是在进程启动时导入和赋值的,而不是在进程每次处理请求时(否则会非常慢),解决方法是使用django的权限系统:https://docs.djangoproject.com/en/dev/topics/auth/default/#permissions-and-authorizationlo8azlld2#
实现这一目标的方法之一是创建2个管理网站,一个为管理员,另一个为工作人员。考虑下面的例子与人力资源和根管理员:
1.输入
admin.py
1.单位:
urls.py
4nkexdtk3#
创建组并将其与您的员工用户一起分配,然后为该组分配权限。只有分配给该组的模块和权限才能看到员工用户,否则就看不到。