【问题标题】:Django, template attribute uniqueDjango,模板属性唯一
【发布时间】:2014-04-24 19:39:23
【问题描述】:

我正在尝试将事件列表实现到 js 日历。所以日历的数据是这样的:

var studyEvents = {
    '04-03-2014' : '<span class="event">Event 1</span>',
    '05-08-2014' : '<span class="event">Event 2</span>',
    '12-09-2014' : '<span class="event">Event 3</span>'
};

如果同一天多个事件,则数据如下:

var studyEvents = {
    '04-03-2014' : '<span class="event">Event 1</span>',
    '05-08-2014' : '<span class="event">Event 2-1</span><span class="event">Event 2-2</span>',
    '12-09-2014' : '<span class="event">Event 3</span>'
};

所以我正在做的是获取一个按日期排序的所有事件的列表。我想检查同一天是否有多个事件。我想我可以检查(因为列表按日期排序)如果event.date不是唯一的,那么可能有一种方法可以将它放在同一行。

var studyEvents = {
    {% for event in events %}
        '{{ event.date|date:"m-d-Y" }}' : '<span class="event">{{ event.title }}</span>'{% if not forloop.last %},{% endif %}
    {% endfor %}
};

我对这个有点迷茫,所以任何帮助都将不胜感激!

【问题讨论】:

  • 您可以在date 上使用内置的模板标签regroup,或者在您的视图中进行分组。 docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup
  • 看来这才是正确的做法!我现在检查一下,我会告诉你的!
  • @SohanJain 这对我有用!!这正是我需要的!如果你想粘贴教程中的代码,我可以奖励你答案!谢谢!

标签: javascript python django django-templates


【解决方案1】:

您可以在日期上使用内置的模板标签regrouphttps://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup

示例用法:

cities = [
    {'name': 'Mumbai', 'population': '19,000,000', 'country': 'India'},
    {'name': 'Calcutta', 'population': '15,000,000', 'country': 'India'},
    {'name': 'New York', 'population': '20,000,000', 'country': 'USA'},
    {'name': 'Chicago', 'population': '7,000,000', 'country': 'USA'},
    {'name': 'Tokyo', 'population': '33,000,000', 'country': 'Japan'},
]

模板:

{% regroup cities by country as country_list %}

<ul>
{% for country in country_list %}
    <li>{{ country.grouper }}
    <ul>
        {% for item in country.list %}
          <li>{{ item.name }}: {{ item.population }}</li>
        {% endfor %}
    </ul>
    </li>
{% endfor %}
</ul>

【讨论】:

  • 正如我在上面的 cmets 中所说,这正是我想要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2019-08-13
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多