【问题标题】:Django Auth: How to assign permission to each record in table?Django Auth:如何为表中的每条记录分配权限?
【发布时间】:2014-10-20 14:00:13
【问题描述】:

我有一个名为 system_object 的表,其中包含主菜单数据。我想为每个菜单分配权限,因此,例如用户 A 可以看到菜单,但用户 B 看不到它。如何使用 Django Auth 做到这一点?

我应该为 system_object 模型中的每条记录定义一个权限吗?

【问题讨论】:

    标签: django authentication


    【解决方案1】:

    创建组并使用装饰器检查用户是否有权查看数据或在您的视图中,添加如下内容:

    is_customer = request.user.groups.filter(name='Customers')
    

    在您的模板中:

    {% if is_customer %} customer stuff here {% endif %}
    

    它依赖于这样一个事实,即模板中的 if 子句对于空列表将被评估为 false。 (来源:-How do I change a Django Template based on the User's Group?

    【讨论】:

    • 菜单 A 在 system_object 中有一行,菜单 B 也有一行,依此类推...我希望用户 x 可以看到菜单 A,但看不到菜单 B。类似于 per row permission 的东西。 ..
    • 您可以实现类似stackoverflow.com/questions/4577513/… 的方法,其他方法可能类似于abidibo.net/blog/2014/05/22/…
    • 我想我想念理解 Django 身份验证系统!我不想为模型定义权限!一些权限独立于模型!我不知道在哪里可以定义这些权限!
    • @MehranMeidani 您不必定义权限。只需创建组并根据用户的权限将用户分配到不同的组,稍后在视图中实现逻辑,如上面的答案所示
    • 所以,每个组都有一些权限。正确的?如何独立于模型定义这些权限?我称之为无模型!我有 90 多个菜单项,所以,我需要 90 多个权限...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 2023-01-03
    相关资源
    最近更新 更多