#django
Вопрос:
К сожалению, я не могу найти прямого ответа на этот вопрос, хотя есть несколько связанных с этим вопросов.
Скажем, у нас есть:
class Category(models.Model):
name = models.CharField(max_length=50)
class SubCategory(models.Model):
name = models.CharField(max_length=50)
category = models.ForeignKey(Category,on_delete=CASCADE, blank=True, null=True, related_name='subcategories')
Я знаю, что могу получить все подкатегории определенной категории с помощью
some_category.subcategories.all()
Но как мне получить набор запросов всех подкатегорий всех категорий в наборе запросов?
Комментарии:
1.
Subcategory.objects.all()
? Поскольку значениеForeignKey
не может быть аннулировано, это означает, что каждоеSubcategory
принадлежит ровно одномуCategory
.2. @WillemVanOnsem Извините, это аннулируется, я сейчас отредактирую
Ответ №1:
Вы можете получить все Subcategory
s, связанные с коллекцией Category
s, с помощью:
Subcategory.objects.filter(category__in=mycategories)
Здесь мы используем __in
поиск [Django-doc] для получения только тех Subcategory
s, для которых указана категория mycategories
.
Комментарии:
1. Я не думаю, что это решает мою проблему, потому что я не хочу, чтобы существовали все подразделы каждой категории. Мне нужны только те, категория которых указана в моем отфильтрованном наборе запросов.
2. @eva: ах, тогда вы делаете это с
__in
помощью поиска, см. Редактирование.