2

我必须在 django 应用程序中按日期显示条目,但我有点受阻:这是我的模型示例:

class Event(models.Model):  
    name = models.CharField(max_length=100)  
    theme = models.ForeignKey(Theme)
    ...

class Date(models.Model):  
    event = models.ForeignKey(Event)  
    start = models.DateField()  
    end = models.DateField()

    class Meta:
        ordering = ['start', 'end']
        unique_together = ['event', 'start']

我得到了一个包含数据库中所有事件的视图:Event.objects.all()

然后在模板中显示事件列表及其主题和其他内容,如日期开始。我想在列表中显示第一个“未来”日期,这很容易使用事件模型上的自定义方法:

def get_first_future_date(self):
    today = datetime.datetime.now()
    dates = self.date_set.filter(end__gte=today)
    if dates:
        return dates[0]

该方法是第一个未来日期或未完成的最早日期。
Here's the problem : I would like to show that field in my template and be able to sort it with django-sorting.

Django-sorting 使用 {% anchor arg %} 来做到这一点,但我不知道如何管理其中的那个字段......你会怎么做???

提前感谢您的任何回答。

4

1 回答 1

0

您的问题不清楚,为什么只返回一个 Event 实例end时按字段对查询集进行排序?get_first_future_date

好吧,我从来没有使用过 django-sorting,但我想我会这样做

events = Event.objects.all() # or filter(...)
# pass events to the template context

然后在模板中

{% load sorting_tags %}
{% autosort events %}
<thead>
   <th>{% anchor start Starting at %}</th>
   <th>{% anchor end Ending at %}</th>
    ...
</thead>
{% for event in events %}
<tr>
    <td>{{event.start}}</td>
    ...
</tr>
{% endfor %}

是你要求的吗?

于 2012-05-20T22:49:14.177 回答