【问题标题】:Django template - How to match model datefield with a date in date generator?Django 模板 - 如何将模型日期字段与日期生成器中的日期匹配?
【发布时间】:2015-06-20 08:57:33
【问题描述】:

在我的 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。

到目前为止,我通过上面的代码得到了这个:

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

【问题讨论】:

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


    【解决方案1】:

    代替

                {% for t in employer.task_set.all %}
                        <td>{{ t }}</td>
                    {% empty %}
                        <td>0</td>
                {% endfor %}
    

    您需要再次迭代日期,因为您没有为每个日期创建&lt;td&gt;

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

    【讨论】:

      猜你喜欢
      • 2015-09-01
      • 2014-08-09
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      相关资源
      最近更新 更多