Как выбрать элементы по списку в Django?

Всем привет.

Есть задача:

У статьи есть список тегов, у курса есть тег (один) = нужно с базы забрать все курсы, которые имеют со статьями общий тег.

tags = Tag.objects.filter(tags=article_id) = забирает все теги, которые принадлежат этой статьи (список всех тегов).

course_handler = Course.objects.filter(tags_for_course=tags) = вот эта штука делает поиск только по первому тегу. (остальной список не берется в рассчет).

Как написать запрос, чтобы были выбраны все курсы по списку.

Можно, конечно, сделать что-то типа такой штуки, но это выглядит как-то дико.

course_handler = []
for tag in tags:
    course_ready = Course.objects.filter(tags_for_course=tag)
    course_handler.append(course_ready)
  • Вопрос задан
  • 357 просмотров
Решения вопроса 1
Terras
@Terras Автор вопроса
Нашел решение на этой странице:

https://docs.djangoproject.com/en/1.10/topics/db/q...

course_handler = Course.objects.filter(tags_for_course__in=tags)
.

Хвостик __in дает возможность лупать по списку
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы