繁体   English   中英

Django 滤波器基于最新的相关领域 model

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM