Django模板 - 如何将模型日期字段与日期生成器中的日期匹配?

时间:2015-06-20 08:57:33

标签: django django-models django-templates django-views

在我的models.py任务中可以有多个Employer,所以我使用ManyToManyField

在我的views.py中,我得到了一个日期生成器 - 它从当天开始返回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表中向我显示特定日期内每个雇主的任务的start_date。

到目前为止,我得到了以上代码: enter image description here

^这些雇主的任务日期与表头中的天数不匹配。

1 个答案:

答案 0 :(得分:0)

而不是

            {% 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 %}