如果我想在Django管理界面中更改添加或更改对象的方式,我可以简单地覆盖form
(docs)。
对于一个只有“查看”权限(没有添加,没有更改,没有删除)的用户,表单甚至不会显示。
如果我想更改一个对象在管理UI中的显示方式,为一个在“详细页面”上只有“查看”权限的用户,我该怎么做?
P.S.当我说的“详细页面”时,我指的是当你点击列表视图中的对象时呈现的页面。URL以“change”结尾,但没有更改权限的用户不能更改任何内容。
EDIT:是否可以更改表单模板?
编辑2:询问这个问题的相关方式可能是:如何在更改表单上显示只读字段,以及如何自定义只读字段显示?我认为如果你没有“更改”权限,它会将字段呈现为只读。
EDIT 3:This answer表示不能自定义只读字段。所以也许这是不可能的?
1条答案
按热度按时间e3bfsja21#
我最后说:
change_view
。在change_view中,我把widget_html
放在extra_context中。change_form_template
设置为使用the widget_html
的模板,如下所示:字符串
感觉有点怪,但很有效。
由于我的小部件有可编辑的部分,我在
change_view
中使用attrs={"disabled": True}
渲染它:型
这使得UI不可改变(例如,下拉菜单不下拉)。让我的小部件对只读标志做出React并以不同的方式呈现会更好,但我的动作很快,这就做到了。