Как получить конкретные данные из бд?

У меня есть три таблицы: Книги, Категории, Подкатегории. Когда юзер переходит по ссылке у меня есть category_id т.е. Категория книг. Как мне получить подкатегории книг, которые пренадлежат к Категории? Например, в таблице Категория есть художественная литература и документальная литература. В таблице Подкатегории есть все подкатегории данных категорий, они привязаны к одной из категорий. Как мне получить конкретный список подкатегорий?

views.py

def get_category(request, category_id):
    book = Book.objects.filter(category_id=category_id)
    category = Category.objects.filter(pk=category_id)
    subcategory = Subcategory.objects.filter(pk=???)
    return render(request, 'app/single.html', {'book': book, 'subcategory': subcategory, 
'category': category})

models.py

class Book(models.Model):
    category = models.ForeignKey('Category', on_delete=models.PROTECT, null=True)
    subcategory = models.ForeignKey('Subcategory', on_delete=models.PROTECT, null=True)

class Category(models.Model):
    title = models.CharField(max_length=36)

class Subcategory(models.Model):
    title = models.CharField(max_length=36)
    category = models.ForeignKey('Category', on_delete=models.PROTECT, null=True)

Ответы (1 шт):

Автор решения: Andrey Maslov

тут же все просто, у тебя в Subcategory есть ссылка на таблицу категорий, поэтому и фильтруй по этому полю

    subcategory = Subcategory.objects.filter(category=int(category_id))

Вот тут, можно подробней посмотреть о различных фильтрах при исопльзовании объектной модели в django https://docs.djangoproject.com/en/3.1/topics/db/queries/#retrieving-specific-objects-with-filters

→ Ссылка