我正在开发一个Django项目,我希望用户只允许用户在add_view上编辑特定字段。所以我已经覆盖了admin.py上的change_view方法,所以它可以在那里设置我的readonly_fields。但Django不会显示readonly_fields。
对我来说,似乎没有显示只读字段。我的意思是,如果它是只读的,它所说的部分在哪里读?它应该是可读的(仅),并且不可编辑。如果我想隐藏它,应该有一个名为hidden_fields的选项。你们不同意吗?
我想知道是否有任何直接的方法让我的管理员可以看到readonly_fields,但是不可靠。
来自django.contrib import admin 来自core.models导入框
class BoxAdmin(admin.ModelAdmin):
def change_view(self, request, object_id, form_url='', extra_context=None):
self.readonly_fields = ('colour',)
return super(BoxAdmin, self).change_view(request, object_id)
def add_view(self, request, form_url='', extra_context=None):
self.readonly_fields = []
return super(BoxAdmin, self).add_view(request, extra_context=c)
答案 0 :(得分:1)
答案 1 :(得分:0)
我发现了问题,而且恰好是我缺乏关注。实际上Django确实显示了readonly_fields但我看不到它,因为它们显示在表单的底部。当你没有设置ModelForm.fields属性时,它们会转到底部,这几乎就是我的情况。