【发布时间】:2017-11-01 12:59:39
【问题描述】:
我现在有这个表格:
class PersonForm(forms.Form):
article = forms.CharField(required=False)
workshop = forms.ModelChoiceField(queryset=Program.objects.none(),
empty_label="----",
required=False,
label='Atelier')
def __init__(self, *args, **kwargs):
super(PersonForm, self).__init__(*args, **kwargs)
article = self.initial.get('article', None)
if article:
a = Article.objects.get(pk=article)
if a.workshop:
self.fields['workshop'].queryset = Program.objects.filter(event=a.event, workshop=True)
self.fields['workshop'].required = True
self.helper.layout.insert(4, Row1Field('workshop',))
用于检索所有工作坊的queryset是动态的,所以ModelChoiceField里面的queryset属性设置为Program.objects.none(),动态的queryset在form的__init__方法里面完成
一切正常:选择中为workshop 显示的所有值都正常。但是当我发布表单时,出现验证错误:'Select a valid choice. This choice is not among available choices.'
我有什么遗漏吗?
【问题讨论】:
-
请展示你的观点。
标签: python django python-2.7 django-forms