我有这样的表格:
class Dashboard(forms.Form):
year = forms.ChoiceField(choices=Year.objects.all().values_list('pk', 'year'))
由于以下错误,我的测试未运行:
django.db.utils.OperationalError: no such table: common_year
答案 0 :(得分:0)
问题是Django在加载forms.py
时尝试获取查询集,但该表尚未创建。
您可以使用choices
的可调用来修复错误。这意味着在实例化表单之前不会评估查询集。
def year_choices():
return Year.objects.all().values_list('pk', 'year')
class Dashboard(forms.Form):
year = forms.ChoiceField(choices=year_choices)
另一种选择是改为使用ModelChoiceField
。
class Dashboard(forms.Form):
year = forms.ModelChoiceField(queryset=Year.objects.all())