Django 模板:表单字段名称作为变量?

Jul*_*pov 4 django django-templates django-forms

我怎样才能让这个循环打印表单字段,其中 XXXXXXX 是 Ticket.id 的值?

{% for ticket in zone.tickets %}
    {{ ticket.id }}: {{ form.ticket_count_XXXXXXXX }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

所以输出是这样的......

1: <input ... name="ticket_count_1">
10: <input ... name="ticket_count_10">
12: <input ... name="ticket_count_12">
3: <input ... name="ticket_count_3">
Run Code Online (Sandbox Code Playgroud)

Yuj*_*ita 5

你不能在 django 模板中传递参数,所以不行。

您需要实现一个模板标签(更麻烦)或过滤器,或者在您的视图中进行从ticket到 的关联formfield(我建议这样做)。

由于我实际上并不知道您的表单字段之间的关系ticket,因此我无法说出最好的方法是什么,但根据您提供的信息,这将“正常工作”。

# view
form = MyForm()
for ticket in zone.tickets:
    ticket.form_field = form['ticket_count_' + str(ticket.id)]

# template
{% for ticket in zone.tickets %}
    {{ ticket.id }} : {{ ticket.form_field }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)