如何在模板中显示Django模型选择列表?

时间:2012-06-30 22:12:41

标签: python django

我到处寻找,似乎无法找到我遇到的这个问题的答案,并且想知道是否有人愿意提供帮助。

我正在尝试将选项本身(Q_TYPE)显示为模板中的单选按钮列表。我尝试过“get_FOO_display”,但它似乎只显示附加到另一个值的内容。

以下是我最好的尝试以及我正在寻找的内容。如果有人能帮我解决这个问题,我会非常感激。即使是我应该寻找的关键词我也会感激。谢谢!

Models.py

Q_TYPE = (
('T', 'Text Question'),
('M', 'Multiple Choice'),
)

class Question(models.Model):
   form = models.ForeignKey(Form)
   textquestion = models.CharField(max_length=200, null=True, blank=True)
   questiontype = models.CharField(('question type'), max_length=1, choices=Q_TYPE)

   def __unicode__(self):
       return self.textquestion

模板

{% for questiontype in q_type %}
    {{ questiontype }} <input type="radio" name="{{ questiontype }}" id="" value="" /><br />
{% endfor %}

我想要的是什么(&lt;&gt;是一个单选按钮)

 < > Text Question
 < > Multiple Choice

1 个答案:

答案 0 :(得分:2)

您可以将Q_TYPE传递到模板上下文中,然后执行操作:

views.py

context = {'Q_TYPE': Q_TYPE}
return render(request, 'mytemplate.html', context)

模板

{% for id, value in Q_TYPE %}
    {{ value }} <input type="radio" name="{{ id }}" id="" value="" /><br />
{% endfor %}

或在循环变量上使用索引

{% for item in Q_TYPE %}
    {{ item.1 }} <input type="radio" name="{{ item.0 }}" id="" value="" /><br />
{% endfor %}

但是,正如我在评论中提到的那样,您应该尝试使用内置的ModelForm系统。