从模型中创建表单标签,并以django表单从另一个模型中创建问题

从模型中创建表单标签,并以django表单从另一个模型中创建问题,django,django-forms,Django,Django Forms,我有两个模型: class Questions(models.Model): question = models.TextField(verbose_name='Question') def get_answers(self): query = self.answers.select_related() for q in query: return q def __unicode__(self): return u'%s'%(

我有两个模型:

class Questions(models.Model):
  question = models.TextField(verbose_name='Question')
  def get_answers(self):
      query = self.answers.select_related()
      for q in query:
          return q

  def __unicode__(self):
      return u'%s'%(self.question)

class Answers(models.Model):
   answers = models.CharField(verbose_name='answer')
   question = models.ForeignKey(Questions, related_name="answers")

   def __unicode__(self):
       return u'%s'%(self.answers)
我想创建一个表单,表单标签是根据问题和答案创建的。我创建了这样一个表单:

class QuestionForm(forms.Form):

    def __init__(self,questions, *args, **kwargs):
        self.questions = questions
        for question in questions:
            field_name = "question_%d" % question.pk
            choices = []
            for answer in question.answers.all():
                choices.append((answer.pk,answer.answers))

            field = forms.ChoiceField(label=question.question, required=True,
                                  choices=choices, widget=forms.RadioSelect)
        return super(QuestionForm, self).__init__(*args, **kwargs)
编辑:

但在上面的视图中,模板中并没有任何表单。我的
问题表
中有什么问题


提前感谢

如果您为此更改课程,您的表格将有效

 class QuestionForm(forms.Form):

    def __init__(self,questions, *args, **kwargs):
        super(QuestionForm, self).__init__(*args, **kwargs)
        self.questions = questions
        for question in questions:
            field_name = "question_%d" % question.pk
            choices = []
            for answer in question.answers.all():
                choices.append((answer.pk,answer.answers))

            self.fields[fields_name] = forms.ChoiceField(label=question.question, required=True,
                              choices=choices, widget=forms.RadioSelect)

“模板中没有任何形式”是什么意思?发布视图代码。@ChrisPratt;我已经编辑了我的问题。谢谢你是说模板中没有定义
表单
?也许你也应该发布你的模板;)。问题是您的
问题表单
没有本质上的问题。拥有模板代码可能会揭示一些其他可能存在的问题。然而,你回避了这个问题。
表单
在模板中是否未定义?此外,你没有得到任何错误,是吗?+1个漂亮的接球。我甚至没有注意到他从未真正将字段添加到
self.fields
我们不能,因为
'QuestionForm'对象没有属性“fields”
请将“your class”更改为“my class”。对super的呼叫应该是第一个
 class QuestionForm(forms.Form):

    def __init__(self,questions, *args, **kwargs):
        super(QuestionForm, self).__init__(*args, **kwargs)
        self.questions = questions
        for question in questions:
            field_name = "question_%d" % question.pk
            choices = []
            for answer in question.answers.all():
                choices.append((answer.pk,answer.answers))

            self.fields[fields_name] = forms.ChoiceField(label=question.question, required=True,
                              choices=choices, widget=forms.RadioSelect)