Могу ли я использовать предотвращение по умолчанию в форме, которая использует GET в качестве метода в шаблоне Django HTML?

Я хочу создать раздел о поиске некоторых фильмов в моей базе данных, однако этот раздел находится в нижней части моей страницы. Однако, когда я выполняю поиск и нахожу фильм, который я искал, страница обновляется. Кроме того, я не знаю, является ли "GET" идеальным методом для безопасных разделов, но я читал, что POST необходим только для изменений в базе данных. В данном случае я просто хочу вывести фильм, соответствующий тому, что искали в строке поиска.

Это мой вид, и я получаю поиск вот так, в контексте, чтобы его было легче визуализировать. Это работает нормально.

class MoviesPage(TemplateView):

    template_name = "tailwind/movies-page.html"

    def get_context_data(self, **kwargs):

        context = super(MoviesPage, self).get_context_data(**kwargs)

        # Top Movies' section
        movies = Movies.objects.filter(
            name__in=[
                'Oldboy',
                'Parasite',
                'Lady Vengeance',
                ]
            )

        context['movies'] = movies

        # Movie search's section
        query = self.request.GET.get('q', default='oldboy')
        results = Movies/.objects.filter(Q(name__icontains=query))
        context['results'] = results

Это моя форма в моем HTML шаблоне:

<form
  action=""
  method="GET"
  id="search-package-form"
>
  <input
    type="search"
    name="q"
    placeholder="oldboy"
  />
  <div>
    <button
      type="submit"
    >
      <span>Search</span>
    </button>
  </div>

</form>

{% if results %}

  <div>
    {% for movie in results %}
            <ul>
                <li>{{ movie.name }}</li>
            </ul>
    {% endfor %}
  </div>

{% else %}

    <div>
      <h3>We did not found this movie</h3>
    </div>

{% endif %}

<script>
  document.getElementById('search-package-form').addEventListener('submit', function(e) {
  // prevent the default action of the submit event
  e.preventDefault();

  // submit the form using the submit() method
  this.submit();
});

</script>

Однако, моя страница все еще обновляется, когда я отправляю что-то, потому что я получаю что-то вроде:

/movies/?q=oldboy.

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