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
小部件,它将再次出现。这只是它的实现方式。如果您不传递任何值,则无需渲染任何内容,因为它无论如何都是隐藏的,因此用户无法更改值。
您可以在这里查看实现: https://github.com/django/django/blob/master/django/forms/widgets.py#L316
如果需要渲染它,则需要向其传递一些初始数据,但奇怪的是,到底有什么用例?