Django:
Я пытаюсь создать функцию, с помощью которой пользователь может щелкнуть категорию, а затем выполнить поиск в этой категории. Моя проблема в том, что я не могу получить категорию pk в html. Я исчерпал свой мозг, пытаясь найти способ, но пока не повезло.
<form class="searchfield" action="{% url 'posts:cat_search' pk= %}" method="get">
<button type="submit" name="button">
<i class="fa fa-search"></i>
</button>
<input class="searchfield" id="searchbox" name='q' type="text" placeholder="Search">
</form>
Мне нужно указать категорию pk для поиска, но как? Я могу захватить все категории ПК, но только не для правильной категории
class PostListView(LoginRequiredMixin, ListView):
model = Post
def categories(self):
return Category.objects.all()
def get_queryset(self):
return Post.objects.filter(created_date__lte=timezone.now()).order_by('-created_date')
class PostCatView(PostListView):
template_name = 'posts/post_category.html'
def get_queryset(self):
result_pk = self.kwargs.get('pk')
return Post.objects.filter(label=self.kwargs.get('pk')).order_by('-created_date')
class CategorySearchView(PostCatView):
def get_queryset(self):
result = super(PostCatView, self).get_queryset()
query = self.request.GET.get('q')
if query:
query_list = query.split()
result = result.filter(
reduce(operator.and_,
(Q(title__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(body__icontains=q) for q in query_list))
)
return result