django - 从主管理列表中隐藏模型,但允许在内联编辑器中创建

标签 django django-admin

在我的 Django 应用程序中,我有一个 Attribute 模型,它与一个 MeasurementMethod 模型具有多对多关系。

我在 Attribute 的管理界面中为 MeasurementMethod 内联了一个内联,但我认为有一个单独的界面来管理 MeasurementMethods 根本没有用;没有理由用户会说,“哎呀,我想知道什么属性可以通过排水量来衡量。”

但是,在我找到 Anton Belonovich's post 之前,这无法从内联编辑器中创建新的 MeasurementMethods。 ,这说明我需要 admin.site.register(MeasurementMethod)第一的。我这样做了,果然出现了编辑和创建按钮。

但是现在在管理页面上,有一个应用程序列表和可以管理的模型,有一个我不想要的 MeasurementMethod 条目。

有没有办法摆脱它?或者有没有更好的方法来实现这一点?

最佳答案

解决方案是使用覆盖 has_module_permission 的自定义管理类注册 MeasurementMethod 类。 :

@admin.register(MeasurementMethod)
class MeasurementMethodAdmin(admin.ModelAdmin):
  def has_module_permission(self, request):
    return False

然后该类仍然可以内联编辑。

ModelAdmin.has_module_permission(request)
Should return True if displaying the module on the admin index page and accessing the module’s index page is permitted, False otherwise. ... Overriding it does not restrict access to the add, change or delete views ...

关于django - 从主管理列表中隐藏模型,但允许在内联编辑器中创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49293901/

相关文章:

django - Django 1.2 中还需要 {% csrf_token %} CSRF 保护标签吗?

django - 注册的模型不显示在管理员中

Python/Django - 初始/默认管理页面

django-admin - 从 django admin 中删除 Python Social Auth

django - 无法使用 django-mptt 在 django admin 中创建多对多对象

python - 工厂男孩 django 工厂中的 FACTORY_FOR 在哪里?

django - 根据相关对象的存在过滤 Django 模型

python - 如何在 django admin 中添加双向 manytomanyfields?

mysql - 有没有办法在 django 中使用 mysql 数据库后端创建唯一的 TextField?

django - 在 django admin 中为外键创建链表