默认情况下,使用表单集显示的 Django 自动字段是隐藏的。展示它的最佳方式是什么?
目前,模型被声明为,
class MyModel:
locid = models.AutoField(primary_key=True)
...
当使用 Django 表单集呈现时,
class MyModelForm(ModelForm):
class Meta:
model = MyModel
fields = ('locid', 'name')
它在页面上显示为,
<input id="id_form-0-locid" type="hidden" value="707" name="form-0-locid"/>
谢谢。
编辑
我像这样创建表单集 -
LocFormSet = modelformset_factory(MyModel)
pformset = LocFormSet(request.POST, request.FILES, queryset=MyModel.objects.order_by('name'))
第二次编辑
看起来我没有使用我在那里定义的自定义表单类,所以这个问题需要稍微修改..
如何从自定义表单(将显示隐藏字段)创建表单集,以及使用自定义查询集?
目前,我可以从 BaseModelFormSet 类继承并使用自定义查询集,也可以使用 ModelForm 类向表单添加自定义字段。有没有办法同时使用表单集?
第三次编辑
我现在用,
class MyModelForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
locid = forms.IntegerField(min_value = 1, required=True)
self.fields['locid'].widget.attrs["type"] = 'visible'
self.queryset = MyModel.objects.order_by('name')
class Meta:
model = MyModel
fields = ('locid', 'name')
LocFormSet = modelformset_factory(MyModel, form = MyModelForm)
pformset = LocFormSet()
但这仍然没有
- 显示 locid
- 使用指定的自定义查询。