Я пытаюсь отфильтровать таблицу в django на основе выбранной категории. Поле категории эквивалентно имени.
Я не могу осмыслить фильтрацию всех сообщений блога, которые ссылаются на этот идентификатор категории.
Сейчас я использую это: category_posts = BlogPost.objects.filter(category=cats).order_by('-published')
Который я можно использовать без внешнего ключа. Я передаю строковую переменную в путь
Как я могу сделать это более эффективным и использовать внешний ключ, который связывает таблицу .. Примерно так: category_posts = Blogpost.objects.filter(category__category__contains=cat)
Я не знаю, усложняю ли я вещи, просто запутался
Доступны 2 таблицы:
name='Category',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('category', models.CharField(max_length=200)),
('summary', models.CharField(max_length=200)),
('slug', models.CharField(default=1, max_length=200)),
],
name='Blogpost',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200)),
('content', models.TextField()),
('published', models.DateTimeField(default=datetime.datetime(2020, 7, 8, 20, 49, 14, 897634), verbose_name='date published')),
('slug', models.CharField(max_length=200)),
('category', models.ForeignKey(default=1, on_delete=django.db.models.deletion.SET_DEFAULT, to='blogposts.Category', verbose_name='Category')),
],