Django:在Form的init方法中使用小部件?

问题描述 投票:0回答:1

为什么定义为类属性的字段的小部件可以工作,但对于

__init__
方法内的实例属性却不起作用? (我需要init方法)

class CropForm(forms.ModelForm):

    class Meta:
        model = CropModel
        fields = ['name', 'label']

    label = forms.CharField(label='label',
                        widget=forms.TextInput(attrs={'class': 'input'}))

    def __init__(self, *args, **kwargs):

        super().__init__(*args, **kwargs)
        self.name = forms.CharField(label='name',
                            widget=forms.TextInput(attrs={'class': 'input'}))

form image

如何让

__init__
方法中的小部件正常工作?谢谢。

python django forms widget
1个回答
0
投票

你已经很接近了:

class CropForm(forms.ModelForm):

    class Meta:
        model = CropModel
        fields = ['name', 'label']

    label = forms.CharField(
        label='label', widget=forms.TextInput(attrs={'class': 'input'})
    )

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['name'] = forms.CharField(
            label='name', widget=forms.TextInput(attrs={'class': 'input'})
        )
© www.soinside.com 2019 - 2024. All rights reserved.