MultipleHiddenInput仅在具有初始数据时呈现

时间:2013-11-22 20:31:08

标签: python django forms

class MyForm(forms.Form):
    my_hidden_field = forms.MultipleChoiceField(widget=forms.MultipleHiddenInput, choices=(...))


def my_view(request):
  form = MyForm(initial={'my_hidden_field': MyModel.objects.values_list('id', flat=True)})

使用此类代码,如果从initial调用中删除MyForm参数,my_hidden_field将不会以HTML格式呈现,但如果删除MultipleHiddenInput小部件,则会显示再次,
如何使其正确呈现?

1 个答案:

答案 0 :(得分:2)

这就是它实施的方式。如果你没有传递任何值,那么就没有任何东西可以呈现,因为它无论如何都是隐藏的,所以用户不能改变这些值。

您可以在此处查看实施: https://github.com/django/django/blob/master/django/forms/widgets.py#L316

如果你需要渲染它,你需要将一些初始数据传递给它,但很奇怪,具体用例是什么?