Задать вопрос
@PenguinVasily

Как правильно отфильтровать объекты бд Django?

У меня есть модель, содержащая в себе текст анекдота и теги для этого анекдота.

Модель:
class Anecdote(models.Model):
    text = models.CharField(max_length=1000)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    time_published = models.DateTimeField(auto_created=True)
    tags = models.ManyToManyField(Tag, blank=True)

    def __str__(self):
        return self.text

Когда я пытаюсь получить, в представлении, анекдоты по конкретному тегу, то получаю либо повторы, либо объекты, которые не содержат нужный тег.

Попытка получить нужные анекдоты:
anecdotes = Anecdote.objects.filter(tags__anecdote__tags=Tag.objects.last())

Может я неправильно фильтрую теги?
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Разработка на Python
    1 год
    Далее
Решения вопроса 1
@PenguinVasily Автор вопроса
Понял в чём ошибка. Нужно было просто фильтровать по tags.

Итоговый вариант:
anecdotes = Anecdote.objects.filter(tags=Tag.objects.last())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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