个必需的位置参数

个必需的位置参数

我写了一个动态表单:

class VoteForm(forms.Form):
    def __init__(self, *args, **kwargs):
        question = kwargs.pop('instance', None)
        super().__init__(*args, **kwargs)

        if question:
            if question.allow_multiple_votes:
                choice_field = forms.ModelMultipleChoiceField(queryset=question.choice_set)
            else:
                choice_field = forms.ModelChoiceField(queryset=question.choice_set)
            choice_field.widget = forms.RadioSelect
            choice_field.label=False
            choice_field.empty_label=None
            choice_field.error_messages={'required': _('No choice selected.'),
                                         'invalid': _('Invalid choice selected.')}
            self.fields['choice'] = choice_field

如果没有 RadioSelect 小部件,一切似乎都可以正常工作,但是有了它,会发生以下错误:

最佳答案

在创建字段后设置小部件时,它必须是小部件实例,而不是类本身。但是你必须自己设置选择:

   choice_field.widget = forms.RadioSelect(choices=...)

最好,您可以在构建字段时提供小部件类:
   choice_field = forms.ModelChoiceField(queryset=question.choice_set, widget=forms.RadioSelect)

关于python - use_required_attribute() 缺少 1 个必需的位置参数 : 'initial' django forms,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42745403/

10-11 05:32