在我的Django应用程序中,我有一个属性模型,它与MeasurementMethod模型有多对多的关系。
我在属性的管理界面中放置了一个内联的MeasurementMethod,但我认为根本没有一个单独的界面来管理MeasurementMethods;没有理由让用户说,"哎呀,我想知道什么属性可以通过排水来衡量。"
但是,在我找到Anton Belonovich's post之前,我无法从内联编辑器创建新的MeasurementMethods,这表示我需要先admin.site.register(MeasurementMethod)
。我做到了,确实出现了编辑和创建按钮。
但是现在在管理页面上,有一个应用列表和可以管理的模型,还有一个我不想要的MeasurementMethod条目。
有没有办法摆脱它?或者有更好的方法来实现这一目标吗?
答案 0 :(得分:3)
解决方案是使用覆盖has_module_permission
的自定义管理类注册MeasurementMethod类:
@admin.register(MeasurementMethod)
class MeasurementMethodAdmin(admin.ModelAdmin):
def has_module_permission(self, request):
return False
然后仍然可以内联编辑类。
ModelAdmin.has_module_permission(request)
如果在管理索引页面上显示模块并且允许访问模块的索引页面,则应返回True,否则返回False。 ...覆盖它不会限制对添加,更改或删除视图的访问......
答案 1 :(得分:0)
您可以创建自定义管理网站docs,然后覆盖index
方法/视图。确保使用这个新的管理站点注册模型并将其挂钩到urls.py文件中。