Django / Grade 1 / Поиск и фильтрация

Простая система поиска и фильтрации

from django.core.paginator import Paginator
from django.db.models import Q

from main.models import Realty


def product_list(request):
query = request.GET.get('zapros')
min = request.GET.get('min')
max = request.GET.get('max')
category = request.GET.get('category')

if query:

search_words = query.split()
q_objects = Q()
for word in search_words:
q_objects &= (Q(info__iregex=word) | Q(title__iregex=word))

queryset = Realty.objects.filter(q_objects)

else:
queryset = Realty.objects.all()
if min:
queryset = queryset.filter(price__gt=min)
if max:
queryset = queryset.filter(price__lte=max)
if category:
queryset = queryset.filter(cat=category)
------------
{# стили для формы поиска#}
<style>
.form-inline {
display: flex;
justify-content: center;
flex-wrap: wrap;
}

.form-inline .form-group {
flex: 0 0 100%;
margin-bottom: 10px;
}

.form-inline .form-group .btn-group {
display: flex;
align-items: center;
}

.form-inline .form-group .btn-group .btn {
margin-left: 5px;
}

@media (min-width: 768px) {
.form-inline .form-group {
flex: 0 0 auto;
margin-right: 10px;
}

.form-inline .form-group:last-child {
margin-right: 0;
}
}
</style>



<!-- ======= Features Section ======= -->
<section id="features" class="features">
<div class="container">

{# ФОРМА ПОИСКА начало#}
<form class="form-inline mt-2 mt-md-0" action="" method="get">
<div class="form-group">
<select name="category" class="form-control" onchange="this.form.submit()">
<option value="">Тип недвижимости</option>
{% for i in category %}
<option value="{{ i.pk }}" {% if request.GET.category|stringformat:"s" == i.pk|stringformat:"s" %}selected{% endif %}>{{ i }}</option>
{% endfor %}
</select>
</div>

<div class="form-group">
<input name="zapros" class="form-control" type="text" placeholder="Search" aria-label="Search" value="{{ request.GET.zapros }}">
</div>
<div class="form-group">
<input name="min" class="form-control" type="text" placeholder="Min" aria-label="Search" value="{{ request.GET.min }}" pattern="[0-9]*" title="Please enter numbers only">
</div>
<div class="form-group">
<input name="max" class="form-control" type="text" placeholder="Max" aria-label="Search" value="{{ request.GET.max }}" pattern="[0-9]*" title="Please enter numbers only">
</div>
<div class="form-group">
<div class="btn-group">
<button class="btn btn-outline-success" type="submit">Search</button>
<button class="btn btn-outline-secondary" type="button" onclick="resetForm(this.form)">Clear</button>
</div>
</div>
</form>
{# ФОРМА ПОИСКА конец#}

<script>
function resetForm(form) {
form.category.value = '';
form.zapros.value = '';
form.min.value = '';
form.max.value = '';
form.submit();
}
</script>