Как реализовать поиск по нескольким полям в Django?
Проблема заключается в реализации поиска по нескольким полям. Есть база данных sqllite, есть таблица и одна кнопка поиска на странице, пользователь вводит значение в поля (не обязательно заполнять все поля, оно заполняется случайным образом).
Я только начинаю изучать django, не судите строго) Спасибо!
модели
просмотров
class PostsBySubject(ListView):
template_name = 'blog/index.html'
context_object_name = 'posts'
paginate_by = 50
allow_empty = False
def get_queryset(self):
return Post.objects.filter(subject__pk=self.kwargs['pk'])
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = Subject.objects.get(pk=self.kwargs['pk'])
return context
class PostsByYear(ListView):
template_name = 'blog/index.html'
context_object_name = 'posts'
paginate_by = 50
allow_empty = False
def get_queryset(self):
return Post.objects.filter(year__pk=self.kwargs['pk'])
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = Year.objects.get(pk=self.kwargs['pk'])
return context
class PostsBySurveys(ListView):
template_name = 'blog/index.html'
context_object_name = 'posts'
paginate_by = 50
allow_empty = False
def get_queryset(self):
return Post.objects.filter(surveys__pk=self.kwargs['pk'])
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = Surveys.objects.get(pk=self.kwargs['pk'])
return context
class GetPost(DetailView):
model = Post
template_name = 'blog/single.html'
context_object_name = 'post'
урлы
from django.urls import path
from .views import *
urlpatterns = [
path('', Home.as_view(), name='home'),
path('post/<int:pk>', GetPost.as_view(), name='post'),
path('subject/<int:pk>', PostsBySubject.as_view(), name='subject'),
path('year/<int:pk>', PostsByYear.as_view(), name='year'),
path('surveys/<int:pk>', PostsBySurveys.as_view(), name='surveys'),
path('division/<int:pk>', PostsByDivision.as_view(), name='division'),
path('executor/<int:pk>', PostsByExecutor.as_view(), name='executor'),
path('format/<int:pk>', PostsByFormat.as_view(), name='format'),
path('search/', Search.as_view(), name='search'),
]
поиск
<form class="row g-2" action="{% url 'search'%}" method="get">
<div class="col-auto" style="display: inline-flex; align-items: baseline;">
<input type="text" name="s" placeholder="An object..." class="form-control">
<input type="text" name="y" placeholder="date of..." class="form-control">
<input type="text" name="z" placeholder="Type TO..." class="form-control">
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3">Search</button>
</div>
</form>
Я пробовал различные варианты до сих пор без успеха