R3t*_*rnz 4 python forms django
我写了一个动态表格:
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
Run Code Online (Sandbox Code Playgroud)
没有RadioSelect窗口小部件,一切似乎都可以正常工作,但是使用它,会发生以下错误:
TypeError:use_required_attribute()缺少1个必需的位置参数:“ initial”
在创建字段后设置窗口小部件时,它必须是窗口小部件实例,而不是类本身。但是您必须自己设置选择:
choice_field.widget = forms.RadioSelect(choices=...)
Run Code Online (Sandbox Code Playgroud)
最好在构造字段时提供小部件类:
choice_field = forms.ModelChoiceField(queryset=question.choice_set, widget=forms.RadioSelect)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |