[英]Django filter based on field of latest related model
我有一个 model 帖子和评论,我正在尝试过滤帖子列表以仅显示在最新评论中具有特定 boolean 值(此处称为epic_bool
)的帖子。
我正在尝试如下:
object_list = Post.objects.all()
newest = Comment.objects.filter(
post=OuterRef('pk')
).order_by('-upload_date')
Post.objects.annotate(
is_true=Subquery(newest.values('epic_bool')[:1])
)
object_list = object_list.filter(is_true=True)
但我得到FieldError
Cannot resolve keyword 'is_true' into field. Choices are: ...
我不明白为什么,因为我试图注释而不是解析一个字段?
解决方案:
newest = Comment.objects.filter(
post=OuterRef('pk')
).order_by('-upload_date')
object_list = object_list.annotate(
epic_bool=Subquery(newest.values(epic_bool)[:1])
).filter(epic_bool=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.