订单列表

时间:2014-10-22 16:22:35

标签: python django

我有对象列表,我想按日期订购。这就是我尝试这样做的方式:

list_name.order_by('date')

这是这些对象的模型:

class Tweet(models.Model):
    text = models.CharField(max_length=140)
    date = models.DateField(default=date.today)
    user = models.CharField(max_length=140)

该列表由特定过滤的对象组成。但是,我收到错误:'list' object has no attribute 'order_by'。那么,这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

在Python中对列表(或任何iterable)进行排序的一般方法是使用函数sorted(iterable, key=key_function)。 key参数是一个函数,它返回每个要排序的项的比较值。

要将此通用解决方案应用于您的案例,您可能会使用sorted(list_name, key=lambda tweet: tweet.date)之类的内容。

然而 ,因为您没有通用列表,而是Django提供的数据库中的项目列表,这是订单感知的,您应该在你用来检索对象的函数调用链中解决你的问题。