【发布时间】:2020-10-04 19:43:33
【问题描述】:
我有两个模型,一个User 模型和一个Payment 模型,它们之间有很多关系。 User 有多个 Payments。我想要实现的是根据Payment 的created_at 字段对User 模型进行排序。
我正在尝试修改查询集,然后我将使用带注释的字段latest_tran 进行排序。
def get_queryset(self, request):
qs = super(ClubbedPaymentAdmin, self).get_queryset(request)
qs = qs.annotate(
latest_tran=Greatest(Payment.objects.filter(user=F('id')).values_list('created_at', flat=True)))
return qs
但我有以下错误。
Greatest must take at least two expressions
所以在评估Payments 的列表时,我似乎犯了一个错误。或者可能就像我采取了错误的方法。
任何帮助将非常感激。
谢谢。
编辑
我正在为django 中的用户使用默认的User 模型
我的Payment 模型看起来像这样 -
class Payment(models.Model):
amount = models.FloatField('Points', max_length=10)
purchase_token = models.TextField(max_length=250)
user = models.ForeignKey(User, on_delete=models.CASCADE)
note = models.TextField(max_length=1000, default=None, blank=True)
created_at = models.DateTimeField('Transaction Date')
updated_at = models.DateTimeField('Updated at', auto_now=True)
【问题讨论】:
-
你能分享你的模型吗?
标签: python python-3.x django django-models