Как получить все ссылающиеся объекты в Django?

У меня есть две модели:

class ArticleCategory(models.Model):
    Category_name = models.CharField(max_length=50, null=False, blank=False)

    def __str__(self):
        return self.Category_name

class Article(models.Model):
    Title = models.CharField(max_length=100, blank=False, null=False)
    Content = tinymce_models.HTMLField(null=False, blank=False)
    Category = models.ManyToManyField(ArticleCategory,blank=False)

Предположим, что пользователь будет создавать некоторые категории, не обязательно связывая их с какой-либо статьей, как мне получить все ArticleCategory объекты, которые, по крайней мере, имеют один Article объект, связанный с ними?

Использование обратного отношения в фильтрации с isnull поиском:

ArticleCategory.objects.filter(articles__isnull=False)

Но сначала добавьте related_name в соответствующее поле:

Category = models.ManyToManyField(ArticleCategory, blank=False, related_name="articles")

Кстати, не называйте поля в стиле CamelCase, оставьте его для имен классов.

Вернуться на верх