我正在使用can_delete = True的formset。我想将DELETE字段的小部件更改为隐藏的输入。我似乎无法找到一个好办法做到这一点。我已经试过是:如何更改django formset中DELETE字段的窗口小部件类型
变化形式的小部件HiddenInput和/或表单定义添加一个隐藏字段:
class MyForm(ModelForm):
DELETE = forms.BooleanField(widget=forms.HiddenInput)
class Meta:
model = MyModel
widgets = {'DELETE' : forms.HiddenInput}
执行上面的表单集的改变
class MyFormSet(BaseModelFormSet):
def add_fields(self, form, index):
originalDeletion = None
if DELETION_FIELD_NAME in form.fields:
originalDeletion = form.fields[DELETION_FIELD_NAME]
super(MyFormSet, self).add_fields(form,index)
if originalDeletion is not None:
form.fields[DELETION_FIELD_NAME] = originalDeletion
如果我这样做,它确实将字段更改为隐藏,但这似乎有点破解(有效覆盖通常的add_fields方法)。你应该如何做到这一点?
== ==编辑
事实证明,使用隐藏字段是不是与形式框架,这样很好的反正。你一定要使用复选框并用css隐藏它。如果你想调整Django复选框的CSS,我仍然认为你必须改变上面的add_fields方法,然后你可以改变这个小部件的CSS。
它为什么** **已为类型=隐藏的?隐藏它的其他方法不是很好吗? – jpic 2012-02-21 15:04:54