使用表单集显示时,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
- 使用指定的自定义查询。
最佳答案
尝试更改默认字段类型:
from django import forms
class MyModelForm(ModelForm):
locid = forms.IntegerField(min_value=1, required=True)
class Meta:
model = MyModel
fields = ('locid', 'name')
编辑:已测试且有效...
关于python - 如何在 django 表单集中显示隐藏的自动字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896153/