回顾 views.py 的最新日期

Recalling the latest date on views.py

我正在尝试从查询集中接收最新日期。

customer = models.ForeignKey(Customer, null=True, on_delete= models.SET_NULL)
product = models.ForeignKey(Product, null=True, on_delete= models.SET_NULL)
date_created = models.DateTimeField(auto_now_add=True, null=True)
status = models.CharField(max_length=200, null=True, choices=STATUS)
note = models.CharField(max_length=1000, null=True)
stock = models.CharField(max_length=200, null=True)
min_stock = models.CharField(max_length=200, null=True)

class Meta:
    get_latest_by = 'date_created'


def __str__(self):
    return self.product.name

这样我就可以在我的 html 上显示每个客户下订单的最新日期,并在每次下订单时自行更新。

然而,当我尝试这个查询集时,

latest_order = Order.objects.order_by('date_created').last()

我收到的是产品名称而不是 date_created,有没有办法为每个客户接收最新的 date_created?

尝试使用:

from django.db.models import F, Max

latest_order_per_user = Order.objects.annotate(
    latest=Max('user__order__date_created')
).filter(date_created=F('latest'))

如果您只想获取日期,可以使用 values 方法:

latest_order_per_user = Order.objects.annotate(
        latest=Max('user__order__date_created')
    ).filter(date_created=F('latest'))
latest_dates = last_order_per_user.values('date_created')

这是工作,如你所见,我在括号内放了一个破折号

latest_order = Order.objects.order_by('-date_created')