【问题标题】:Django Users that cannot access Admin and Customizing Admin无法访问管理员和自定义管理员的 Django 用户
【发布时间】:2015-07-16 02:10:13
【问题描述】:

我想使用 Django 用户模型,但我想保留超级用户来管理站点。我希望其他用户无法访问管理界面。但我希望他们能够访问另一个处理上传文件的自定义管理页面。我已经阅读了很多关于自定义用户模型和管理页面的文档,但我无法弄清楚如何完成这样的任务。

我看到我可以将用于管理页面的 AdminSite 子类化并创建我自己的,但这遇到了 is_staff 等问题。

我的想法是创建一个自定义权限并扩展用户模型以拥有它,此权限将允许访问管理页面。但是我仍然不确定如何使用我提到的方法创建管理页面,并避免仍然允许他们访问常规管理页面的问题。

完成此任务的最佳方法是什么?我如何创建这样的管理页面和这样的权限,然后将其分配给扩展用户并阻止他们访问正常的管理页面?

我熟悉装饰器@user_passes_test() 来检查组,但我关心的是确保他们不能进入除“较小”管理面板之外的任何内容。基本上我不希望这些用户能够访问除他们自己的管理仪表板之外的任何内容。

欢迎提供任何示例或建议,我需要有关为这些普通用户创建管理页面、如何创建这些普通用户以及如何确保他们可以访问“较小”管理页面而不是普通用户的建议django 管理员可以控制一切。

作为一个附带问题,如果我使用 django-suit 来自定义我的普通管理页面,这会改变什么吗?

谢谢

【问题讨论】:

    标签: python django


    【解决方案1】:

    如果我理解正确:

    在你的意见中.py

    from django.contrib.auth.decorators import permission_required
    

    在你的定义上添加:

    @permission_required('is_superuser')
    

    此页面只会看到 is_superuser。

    【讨论】:

    • 这个装饰器我很熟悉。我想要的是保留超级用户,因为他们是站点管理员。我需要这样做并创建另一个无法访问管理面板但可以访问另一个较小的管理面板的“普通”用户。我需要有关创建用户、管理面板以及将访问权限限制为普通用户的建议,同时还要确保他们无法访问正常的 django 管理面板
    • 在您的管理面板中'检查用户是否可以登录网站的管理部分。 == True' 为您的用户。并且用户将能够以更少的权限和机会进入管理面板。
    • 正确的组权限,但如果我想要网站的第二个管理员部分,我如何区分这两者的权限,并使其权限不会让他们访问这两个网站?我只希望超级用户同时访问这两个
    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 2012-08-24
    • 1970-01-01
    • 2011-10-08
    • 2019-08-11
    相关资源
    最近更新 更多