Как получить все ссылающиеся объекты в 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, оставьте его для имен классов.