Django-获取只读字段的值(修复只读错误)

Django-获取只读字段的值(修复只读错误),django,django-forms,django-templates,Django,Django Forms,Django Templates,我试图编辑fieldset.html模板,以便在readonly div下添加隐藏的输入(在readonly情况下) 我的管理员 class CampaignAdmin(admin.ModelAdmin): def get_form(self, request, obj=None, **kwargs): return MyModelAdminForm def get_fieldsets(self, request, obj=None): return [

我试图编辑fieldset.html模板,以便在readonly div下添加隐藏的输入(在readonly情况下)

我的管理员

class CampaignAdmin(admin.ModelAdmin):

  def get_form(self, request, obj=None, **kwargs):
    return MyModelAdminForm

  def get_fieldsets(self, request, obj=None):
    return [
      (None,           {'fields': ['val1', 'val2']}),
      ('Informations', {'fields': ['val3']}),
    ]

  def get_readonly_fields(self, request, obj=None):
    if obj:
      return self.readonly_fields + ('val2',)
    else:
      return self.readonly_fields

我需要val2在编辑页面中处于只读模式。

通常,您可以根据需要向表单中添加任何字段。因此,如果需要将字段显示为只读字段和隐藏字段,则可以添加两个字段。您应该正确命名隐藏字段,以便进行保存。您可以使用
label
更改只读字段()的标签

编辑-代码的解决方案:

对于您的解决方案,如果将表单更改为将
val2
作为只读字段而不是常规字段,则还需要将表单的
Meta.fields
设置从:

fields = ('val1', 'val2', 'val3')

否则,
val2
的验证程序将运行


或者,您必须将
val2
的小部件更改为
HiddenInput
,并在django admin类中使用不同的名称和显式方法将其值添加为
readonly_field
。但这需要根据模式(编辑或创建)更改字段集。

通常,您可以根据需要将任何字段添加到表单中。因此,如果需要将字段显示为只读字段和隐藏字段,则可以添加两个字段。您应该正确命名隐藏字段,以便进行保存。您可以使用
label
更改只读字段()的标签

编辑-代码的解决方案:

对于您的解决方案,如果将表单更改为将
val2
作为只读字段而不是常规字段,则还需要将表单的
Meta.fields
设置从:

fields = ('val1', 'val2', 'val3')

否则,
val2
的验证程序将运行


或者,您必须将
val2
的小部件更改为
HiddenInput
,并在django admin类中使用不同的名称和显式方法将其值添加为
readonly_field
。但这需要根据模式(编辑或创建)更改字段集。

不起作用:(不起作用:(
fields = ('val1', 'val2', 'val3')
fields = ('val1', 'val3')