我正在使用Django 1.3python 2.7。我正在使用Django admin应用程序。我想要的是当superuser登录时应将admin / index.html与所有模型一起显示,这是默认行为,但如果有其他行为如果不是超级用户的用户登录,则应该显示一个与我的数据完全不同的模板(例如“ abc.html”)。我该怎么做?我想我需要重写一些管理视图来执行此操作,但是不知道?

请帮助。如果您想了解更多信息,请评论:)

最佳答案

您创建带有其他权限规则的修改后的AdminSite类定义。

class SuperUserAdminSite( AdminSite ):
    def has_permission(self, request):
        return request.user.is_active and request.user.is_staff and request.user. is_superuser


现在,您可以创建两个AdminSite对象,一个用于普通用户,一个用于超级用户。

您在两个管理站点的URL中可以有两个路径。

超级用户可以使用这两种路径。

普通用户将只能使用URL中的普通用户路径。

https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#adminsite-objects

关于python - 覆盖管理员 View -Django,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9226768/

10-12 22:01