MultipleHiddenInput 仅在具有初始数据时才渲染

问题描述 投票:0回答:1
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
小部件,它将再次出现。
如何使其正确渲染?

python django forms
1个回答
3
投票

这只是它的实现方式。如果您不传递任何值,则无需渲染任何内容,因为它无论如何都是隐藏的,因此用户无法更改值。

您可以在这里查看实现: https://github.com/django/django/blob/master/django/forms/widgets.py#L316

如果需要渲染它,则需要向其传递一些初始数据,但奇怪的是,到底有什么用例?

© www.soinside.com 2019 - 2024. All rights reserved.