我在我的项目中使用 postgresql 数据库,并使用 django文档中的以下示例。
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
。