【发布时间】:2010-10-28 02:59:48
【问题描述】:
默认情况下,使用表单集显示的 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 类将自定义字段添加到 form。有没有办法同时使用表单集?
第三次修改
我现在正在使用,
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()
但这还是不行
- 显示轨迹
- 使用指定的自定义查询。
【问题讨论】: