python - 如何在模板中迭代 Django CHOICES - 不使用表单或模型实例

标签 python django

我目前使用选项来定义月份列表和星期几列表。

我想在我的模板中显示这些选项列表,而不必与特定实例或表单相关。

例如...

在我的模型中:

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')

如何只输出每个选项的名称(或值)?

或者,是否有更好的方法来记录模型的月份和星期几 - 然后使用月份和日期对实例进行分组/呈现?

谢谢! :)

最佳答案

有更好的方法来做到这一点。

{% for value, text in form.[field_name].field.choices %}
    {{ value }}: {{ text }}
{% endfor %}

form 是您传递给模板的表单变量。 [field_name] 是您在模型中定义的字段名称。在本例中为“月”

关于python - 如何在模板中迭代 Django CHOICES - 不使用表单或模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242290/

相关文章:

python - 动态构建通用 numpy 数组索引

python - Unicode解码错误: 'ascii' codec can't decode byte 0xe2 in position 139: ordinal not in range(128)

javascript - 用于用户登录/注册的 Django 模式 - 表单渲染问题

python - 自定义 Django 模型字段的字段查找功能

python - 无法将 Django 应用程序部署到 Heroku : name 'install' is not defined

python - 有没有办法结合CreateView和UpdateView?

Python Dataframe 迭代行(比较它们之间的值)并准备一组作为输出

python - 如何在模板中获取 ModelChoiceField 实例

Django:连接两个表

python - matplotlib FigureCanvasQTAgg : slow rotation and grid overlaping surface on QWidget