Django:ModelChoiceField为MultipleHiddenInput

时间:2017-04-18 07:38:35

标签: django

我正在尝试使用ModelChoiceFiel窗口小部件呈现MultipleHiddenInput,但该模板根本不会生成任何输入。

以下是我的尝试:

class PresetSelectForm(forms.Form):
    presets = forms.ModelChoiceField(queryset=Preset.objects.none(), widget=forms.MultipleHiddenInput())

    def __init__(self, presets, *args, **kwargs):
        super(PresetSelectForm, self).__init__(*args, **kwargs)
        self.fields['presets'].queryset = presets

在模板中我使用以下内容:

{% csrf_token %}
{{ form }}

生成了csrf令牌输入,但没有任何内容适用于{{ form }}

我错过了什么?

修改:我在视图中包含了我正在使用的基本和相关代码。它只是FormView,因此会自动创建form对象。

class PresetSelectView(FormView):
    form_class = PresetSelectForm

重写方法包括:get_form_kwargsget_context_dataform_validform_invaliddispatch

我想值得一提的是,我在这些方法的任何地方都没有使用form个实例,form_valid除外,form.cleaned_data['presets']但我没有修改form所有

以下是覆盖get_context_data方法:

def get_context_data(self, **kwargs):
    request = self.request
    context = super(PresetSelectView, self).get_context_data(**kwargs)

    # now some lines retrieving models

    # then we attach some additional attributes to the instances of some of these models (these attributes will be used in the template)

    context.update({...})

    return context

0 个答案:

没有答案