【发布时间】:2020-09-06 21:44:14
【问题描述】:
我在我的项目中使用 postgresql 数据库,并使用来自 django documentation 的以下示例。
from django.db.models import OuterRef, Subquery
newest = Comment.objects.filter(post=OuterRef('pk')).order_by('-created_at')
Post.objects.annotate(newest_commenter_email=Subquery(newest.values('email')[:1]))
但我需要最后两封评论者电子邮件,而不是最新的评论者电子邮件。我将 [:1] 更改为 [:2] 但引发了此异常:ProgrammingError: more than one row returned by a subquery used as an expression。
【问题讨论】:
标签: django django-orm django-postgresql django-annotate django-subquery