Django 模板 - 如何将模型日期字段与日期生成器中的日期匹配?
Django template - How to match model datefield with a date in date generator?
在我的 models.py 任务中可以有多个雇主,所以我使用 ManyToManyField
在我的 views.py 中,我有一个日期生成器 - 它 return 从当天算起 2 周的范围。
这是我的模板
<table>
<thead>
<tr>
<th>{% trans 'employer_id' %}</th>
{% for i in date_range %}
<th>{{ i }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for employer in employers %}
<tr>
<td>{{ employer.employer_id }}</td>
{% for t in employer.task_set.all %}
<td>{{ t }}</td>
{% empty %}
<td>0</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
我需要的是当我创建一个任务并将其分配给雇主时,它应该在 html table 每个雇主特定日期的 start_date 任务中显示.
到目前为止,我用上面的代码得到了这个:
^这些雇主的任务日期与 table header 中的日期不匹配。
而不是
{% for t in employer.task_set.all %}
<td>{{ t }}</td>
{% empty %}
<td>0</td>
{% endfor %}
您需要再次遍历日期,因为您没有为每个日期创建 <td>
。
{% for i in date_range %}
{% for t in employer.task_set.all %}
{% if t.start_date == i %}
<td>{{ t }}</td>
{% else %}
<td>-</td>
{% endif %}
{% empty %}
<td>0</td>
{% endfor %}
{% endfor %}
在我的 models.py 任务中可以有多个雇主,所以我使用 ManyToManyField
在我的 views.py 中,我有一个日期生成器 - 它 return 从当天算起 2 周的范围。
这是我的模板
<table>
<thead>
<tr>
<th>{% trans 'employer_id' %}</th>
{% for i in date_range %}
<th>{{ i }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for employer in employers %}
<tr>
<td>{{ employer.employer_id }}</td>
{% for t in employer.task_set.all %}
<td>{{ t }}</td>
{% empty %}
<td>0</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
我需要的是当我创建一个任务并将其分配给雇主时,它应该在 html table 每个雇主特定日期的 start_date 任务中显示.
到目前为止,我用上面的代码得到了这个:
^这些雇主的任务日期与 table header 中的日期不匹配。
而不是
{% for t in employer.task_set.all %}
<td>{{ t }}</td>
{% empty %}
<td>0</td>
{% endfor %}
您需要再次遍历日期,因为您没有为每个日期创建 <td>
。
{% for i in date_range %}
{% for t in employer.task_set.all %}
{% if t.start_date == i %}
<td>{{ t }}</td>
{% else %}
<td>-</td>
{% endif %}
{% empty %}
<td>0</td>
{% endfor %}
{% endfor %}