3

ここで Forms では、empty_labelを使用できます。私はウィジェットSelectを使用しています。私の選択肢はデータベースからのものですが、ここで使用できますempty_labelか? 私が持っているモデルでは:

position = forms.IntegerField(label=position_label, required=False, 
    widget=forms.Select(choices=Position.objects.all().values_list('id', 'position'),
    attrs={'class':'main', 'title': position_label},
    ), empty_label="(Empty)")

しかし、エラーは次のとおりです。

TypeError: __init__() got an unexpected keyword argument 'empty_label'

ラベルを「空」に設定するには? ありがとう。

4

3 に答える 3

9

empty_label を実装するには、次の 2 つの方法があります。

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['field_name'].empty_label = "(Select here)"
        self.fields['field_name'].widget.attrs['class'] = 'main'
        self.fields['field_name'].queryset = Position.objects.all().values_list('id', 'position')

//OR   

class MyForm(forms.ModelForm):
    field_name = forms.ModelChoiceField(
        queryset=Position.objects.all().values_list('id', 'position'), 
        empty_label="(Select here)"
        )

    class Meta:
        model = MyModel
于 2013-03-05T12:54:44.710 に答える
3

empty_labelウィジェットではなく、フィールドのプロパティです。labelのセットを既に持っていますposition

于 2013-03-05T12:18:40.837 に答える