【发布时间】:2013-09-13 10:04:00
【问题描述】:
如何在不访问数据库的情况下从已清理的数据中生成queryset 或list?
我在这里使用 Django 1.5 FormWizard 和 ModelFormSet。以下不适用于错误:
'list' 对象没有属性'all'
这意味着你不能使用列表,对吗?
def get_form(self, step=None, data=None, files=None):
form = super(MyWizard, self).get_form(step=step, data=data, files=files)
#...
data = self.get_cleaned_data_for_step('a')
list = []
for item in data:
list.append(item['car']) # This is the choice of a ForeigenKey
#...
form.fields['name'].queryset = list
这行得通,但在我看来你做了两次工作:
def get_form(self, step=None, data=None, files=None):
form = super(MyWizard, self).get_form(step=step, data=data, files=files)
#...
data = self.get_cleaned_data_for_step('a')
list = []
for item in data:
list.append(item['car'].id) # This is the choice of a ForeigenKey
#...
form.fields['name'].queryset = SomeClass.objects.filter(pk__in=list)
那么有办法解决吗?
【问题讨论】:
-
非常困惑 - 清理后的数据来自 POST 表单,而查询集用于填充 GET 请求中的模型表单。运行此代码的工作流程是什么?
-
@professorDante 清理后的数据来自表单向导的上一步。
标签: django django-queryset django-forms django-formwizard