python - Django 模型权限与组权限

标签 python django django-admin

我的 django 模型如下所示:

class testModel(models.Model):
    ...
    def has_add_permission(self, request):
        return False
    ...

我的组权限如下所示:

employee: testApp | testModel | can add testModel

用户仍然可以添加对象:

enter image description here

看起来 has_add_permission 函数被忽略,因为该按钮仅在从组中删除权限时消失;

组权限:可以添加testModel且has_add_permission返回true

  • 结果:可以添加测试模型

组权限:可以添加testModel且has_add_permission返回false

  • 结果:可以添加测试模型

组权限:无法添加 testModel 并且 has_add_permission 返回 true

  • 结果:无法添加测试模型

组权限:无法添加 testModel 并且 has_add_permission 返回 false

  • 结果:无法添加测试模型

这是预期的行为吗?

最佳答案

如果您指的是this part在文档中,您应该知道他们正在讨论 ModelAdmin 方法,而不是直接讨论模型。

class MyModelAdmin(admin.ModelAdmin):
    ...

    def has_add_permission(self, request):
        return False

我认为直接在模型上定义这些方法不应该起作用,您必须在该模型的管理类中定义它们。

关于python - Django 模型权限与组权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854521/

相关文章:

python - 在 ipython 解释器中执行文件

python - 将相对 URL 应用于绝对 URL

python - Django/PostgreSQL varchar 到 UUID

Django 的管理 'change' View 不接受 kwargs= {'object_id' :'blah}

django - 对于一个相当大的项目来说,使用内置的 Django 管理是否值得?

python - 在 Django-admin 中,如何显示多对多关系的详细信息

python - "match anything until a specific character, then work your way backwards"怎么说?

python - Django-rest-framework 与 django OAuth 2.0 提供身份验证错误

python - 在 Django 中协商内容的最小样板数量是多少?

python - FieldError at/admin/- 为 UserProfile 指定的未知字段 (add_on)