4

我使用以下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因此我的问题是:有没有办法根据所有字段是否为只读来隐藏这些按钮?我怎么能实现这个?

编辑1:

我知道如何覆盖admin/submit_line.html模板,但我想做的是将 , 设置show_saveshow_save_as_new如果False我只有只读字段。如何更改这些变量值?

4

1 回答 1

1

在 django/contrib/admin 中有一个名为 submit_line.html 的文件,用于呈现按钮。要覆盖它们,请在您的模板目录中创建一个名为 admin 的文件夹,然后在 admin/submit_line.html 中按照您想要的方式修改它(基于某些规则)。请注意,以这种方式修改它会影响每个管理对象视图页面。

于 2012-09-05T19:39:10.243 回答