Csrfmiddlewaretoken, включенный в поисковый url-запрос

Проблема в том, что у меня есть 2 поиска, один из которых - поиск соискателей для поиска работы, а другой - поиск компаний для поиска соискателей. Ожидаемый результат должен быть http://localhost:8000/search-job-seeker/?&q=searchquery, но я получаю http://localhost:8000/search-job-seeker/?csrfmiddlewaretoken=pF6HWEH2rOTvZTRsXzaDuQ9GiGw9ChmukeCYUSND15gzFPCKWmRtRGvVecMHIWKK&q=searchquery Я не вижу никаких сообщений об ошибках при отладке в консоли или в терминале.

Я пытался использовать get в форме, что привело к http://localhost:8000/search-job-seeker/?csrfmiddlewaretoken=pF6HWEH2rOTvZTRsXzaDuQ9GiGw9ChmukeCYUSND15gzFPCKWmRtRGvVecMHIWKK&q=searchquery, но когда я использую метод post в форме, я получаю http://localhost:8000/search-job-seeker/ и результат поиска выходит без q=searchquery в url.

Мое мнение по этому поводу таково:

class JobSeekerSearchView(LoginRequiredMixin, View):
    template_name = "core/job_seeker_search.html"
    form_class = JobSeekerSearchForm

    def post(self, request, *args, **kwargs):
        """
        Handle HTTP POST requests, process form data, search for job seekers, and render the template.
        
        Args:
            self: the instance of the class
            request: the HTTP request object
            *args: variable length argument list
            **kwargs: variable length keyword argument list
            
        Returns:
            HTTP response object
        """
        form = self.form_class(request.POST)
        job_seeker_results = []

        if form.is_valid():
            query = form.cleaned_data["q"]

            # Search for job seekers using PostgreSQL full-text search and icontains
            job_seeker_results = Seeker.objects.annotate(
                search=SearchVector("seekerprofile__pk", "seekerprofile__headline"),
            ).filter(
                Q(search=SearchQuery(query))
                | Q(seekerprofile__skills__icontains=query)
                | Q(seekerprofile__rate__icontains=query)
            )

        context = {"query": query, "job_seeker_results": job_seeker_results, "form": form}
        return render(request, self.template_name, context)

Форма шаблона:

        <form class="d-flex" method="get" action="{% url 'core:seeker_search' %}">
          {% csrf_token %}
          <input class="form-control me-2" type="text" name="q" placeholder="Search job seekers..." value="{{ request.GET.q }}">
          <button class="btn btn-outline-success" type="submit">Search</button>
        </form>

Здесь forms.py

class JobSeekerSearchForm(forms.Form):
    q = forms.CharField(max_length=100, required=False, widget=forms.TextInput(attrs={"class": "form-control"}))

Вернуться на верх