我目前使用选项来定义月份列表和一周中的日期列表。
我想在模板中显示这些选项列表,而不必与特定实例或表单相关。
例如......
在我的模特中:
MONTH_CHOICES = (
('01', 'January'),
('02', 'February'),
('03', 'March'),
etc
DAY_CHOICES = (
('01', 'Monday'),
('02', 'Tuesday'),
('03', 'Wednesday'),
etc
class Item(models.Model):
month = models.CharField(choices=MONTH_CHOICES)
day = models.CharField(choices=DAY_CHOICES)
在我看来:
month_choices = MONTH_CHOICES
在我的模板中:
{% for month in month_choices %}
{{ month }}<br />
{% endfor %}
以上代码输出:
('01', 'January')
('02', 'February')
('03', 'March')
如何输出每个选项的名称(或值)?
或者,是否有更好的方法来记录模型的一个月和一周 - 以及稍后使用一个月和一天分组/呈现实例?
谢谢! :)
答案 0 :(得分:11)
有更好的方法来做到这一点。
{% for value, text in form.[field_name].field.choices %}
{{ value }}: {{ text }}
{% endfor %}
form是您传递给模板的表单变量。 [field_name]是您在模型中定义的字段名称。在这种情况下,&#39;月&#39;
答案 1 :(得分:7)
你可以在迭代时简单地解包元组:
{% for n, month in month_choices %}
{{ n }}, {{ month }}<br />
{% endfor %}
答案 2 :(得分:2)
{% for month in month_choices %}
{{ month.1 }}<br />
{% endfor %}
虽然在语义上你应该使用<ul>
和<li>
而不是<br>
。