'Questions'对象不是可迭代的Django

Unc*_*oby 17 django

我有一个名为Question的模型.模型允许用户创建新问题.我正在尝试使用对象的查询集填充多个表单.当我尝试使用查询集初始化时出现问题.我收到这个错误

 'Question' object is not iterable


File "C:\mysite\pet\views.py" in DisplayAll
294.             formset = form(initial=q)
Run Code Online (Sandbox Code Playgroud)

models.py

class Question(models.Model):
    question= models.CharField(max_length=500)
    user = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

形式

class QuestionForm(forms.ModelForm):
question= forms.CharField(required=True,max_length=51)
class Meta:
    model = Question
    fields = ('question',)
Run Code Online (Sandbox Code Playgroud)

意见

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})
Run Code Online (Sandbox Code Playgroud)

模板

 {% for f in formset %}
 {{f}}
 {% endfor %}
Run Code Online (Sandbox Code Playgroud)

Sam*_*zzo 26

Initial 需要一个值字典,所以你只需要像这样更改你的查询集:

q = Question.objects.filter(user=request.user).values()
Run Code Online (Sandbox Code Playgroud)

查看文档有关values()