2013-09-27 53 views
2

我想显示在管理后台的模型只对超级用户,但没有工作人员的用户,是不可能性?的Django“admin.site.register(......)”只有超级用户

例如:

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

它不能这样的。您的admin.py模块在进程启动时被导入并撤销一次,而不是每次进程处理请求时(希望否则它会很痛苦地慢)。该解决方案是使用Django的权限系统:https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions-and-authorization

+0

谢谢你布鲁诺,我工作的系统上管理产品在数据库中。用户登录,插入一些产品,然后有一个公共视图向未登录的用户显示它们。在这种情况下,最好给用户提供员工权限还是为他创建一个自定义后端?我的目标是扩展系统,让任何用户登录,插入产品并管理它们。谢谢 – avafab

+0

真的取决于你的用户是谁以及后端有多复杂。如果您只有一对技术熟练的用户,并且默认(或几乎默认)的管理员能够满足您的需求,那么就让他们成为员工吧。对于其他任何我去定制后端。鉴于你最后的声明,你明确想要一个自定义后端恕我直言。 –

+0

我的问题是,我需要一些与dgango管理嵌套内联我无法在单个视图中显示多个嵌套内联。我想要一个单一的视图,其中员工用户管理有关产品的所有数据。 - – avafab

相关问题