我使用以下get_readonly_fields
方法不允许在django的管理界面中编辑对象:
def get_readonly_fields(self, request, obj=None):
if obj == None or request.user.is_superuser:
return self.readonly_fields
# marks all fields as readonly otherwise
fields = [f.name for f in self.model._meta.fields]
return fields
这很有效,但save
和save and continue editing
仍然显示出来。他们不会做任何事情,因为所有字段都是只读的。
因此我的问题是:有没有办法隐藏这些save
按钮取决于所有字段是否为只读?我怎么能实现这个呢?
EDIT1:
我知道如何覆盖admin/submit_line.html
模板,但我想要做的是将show_save
,show_save_as_new
设置为False
我只有只读字段。如何更改这些变量值?
答案 0 :(得分:1)
在django / contrib / admin中有一个名为submit_line.html的文件,用于呈现按钮。要覆盖它们,请在模板目录中创建一个名为admin的文件夹,在admin / submit_line.html中,您可以按照自己的方式修改它(基于某些规则)。请注意,以这种方式修改会影响每个管理对象视图页面。