Django фильтр на основе поля последней связанной модели - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть модель сообщений и комментариев, и я пытаюсь отфильтровать список сообщений, чтобы в последнем комментарии отображались только сообщения с определенным логическим значением (здесь они называются 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: ...

Я не понимаю почему, потому что я пытаюсь комментировать, а не разрешать поля!

1 Ответ

0 голосов
/ 30 апреля 2020

решение:

    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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...