这个问题是如何移除Django管理界面中特定模型的添加按钮?的延续。
我意识到我的第一个问题表述不够清楚,所以我认为最好开始一个新问题来修复旧问题。因为已经有一些答案了。
所以问题是如何创建一个Django模型,使其只读。这样你就不能添加新的、删除旧的、更改当前的,但你也没有在Web管理员界面上的按钮。
第一个问题的解决方案都涉及到字段,而不是整个模型。它们都能起作用,意味着你将无法编辑这些字段,但我对它们的工作方式不满意。
当前的解决方案是:
我意识到我的第一个问题表述不够清楚,所以我认为最好开始一个新问题来修复旧问题。因为已经有一些答案了。
所以问题是如何创建一个Django模型,使其只读。这样你就不能添加新的、删除旧的、更改当前的,但你也没有在Web管理员界面上的按钮。
第一个问题的解决方案都涉及到字段,而不是整个模型。它们都能起作用,意味着你将无法编辑这些字段,但我对它们的工作方式不满意。
当前的解决方案是:
- 在模型的所有字段上使用
readonly_fields
——我不喜欢这种方式,因为你可以点击行来改变它,但你不能编辑字段。 - 在字段定义中使用
editable=False
——这将不显示字段在Web管理界面上。但是你仍然可以点击行,只是看不到任何东西,并且仍然有保存按钮。 def has_add_permission(self, request):
——与2相同。- 不要给任何人在此模型上添加权限——与2相同。
有什么想法吗?