我正在从头开始构建我的第一个Django程序,并且遇到了尝试将项目从最新到最旧打印到屏幕的麻烦。 我的模型在DB中填充了自动日期时间字段,如下所示:
from django.db import models
from django.contrib.auth.models import User
from django.conf import settings
from django.utils import timezone
class TaskItem(models.Model):
taskn = models.CharField(max_length = 400)
usern = models.ForeignKey(User)
#Created field will add a time-stamp to sort the tasks from recently added to oldest
created_date = models.DateTimeField('date created', default=timezone.now)
def __str__(self):
return self.taskn
从最新创建到最旧创建的顺序排序或打印此信息的代码行是什么?
想要在此次通话中实施:
taskitems2 = request.user.taskitem_set.all().latest()[:3]
答案 0 :(得分:14)
ordered_tasks = TaskItem.objects.order_by('-created_date')
order_by()
方法用于订购查询集。它需要一个参数,即查询集将被排序的属性。使用-
按相反顺序对此键进行前缀。
答案 1 :(得分:0)
顺便说一句,您也可以使用Django的created_at
字段:
ordered_tasks = TaskItem.objects.order_by('-created_at')