我有一个叫做Question的模型。该模型允许用户创建新问题。我正在尝试使用对象集合填充多个表单。当我尝试使用查询集初始化时,出现了以下错误:
'Question' object is not iterable
File "C:\mysite\pet\views.py" in DisplayAll
294. formset = form(initial=q)
models.py
class Question(models.Model):
question= models.CharField(max_length=500)
user = models.ForeignKey(User)
表单
class QuestionForm(forms.ModelForm):
question= forms.CharField(required=True,max_length=51)
class Meta:
model = Question
fields = ('question',)
视图
def DisplayAll(request):
q = Question.objects.filter(user=request.user)
form = formset_factory(QuestionForm)
formset = form(initial=q)
return render(request,'question.html',{'formset':formset})
模板
{% for f in formset %}
{{f}}
{% endfor %}
form(initial=q)
中添加对 "all()" 函数的调用,即将其改为form(initial=q.all())
。 - will-hartinitial=[question.question for question in q]
,这应该就可以了。您正在传递一个查询集对象,但是initial
期望用于填充表单集的值。 - Samuele Mattiuzzo