Помощь по Django! Форма с методом post не правильно вызывает действие с тегом django url нужна помощь в понимании почему это не работает?

Пытаясь создать простую форму поиска, используя method="POST" и action, ссылающийся на url, который должен вызвать представление для отображения другого шаблона, я столкнулся с тем, что он не работает, все, что он делает, это тег на csrf на мой индексный url и действует так, как будто я использую GET, а не POST, какие-нибудь мысли о причинах?

HTML URL:

http://127.0.0.1:8000/bugtracker/?csrfmiddlewaretoken=jdGcvGb8pioQutLhDOL8y6zbK7DW6XSErTYQ8zHOI8W1fAXf8V6NFoFmzXRIvC3d&searched=

Вид:

    @login_required(login_url='login_register')
    def search_site(request):
    if request.method == "POST":
        searched = request.POST['searched']
        context = {
            'searched': searched
        }
        return render(request, 'bugs/search_site.html', context)
    else:
        return render(request, 'bugs/search_site.html')

URL:

    path('search_site/', views.search_site, name='search_site'),

Шаблон строки поиска:

    <div class="input-group">
    <form method="POST" action="{% url 'search_site' %}">
    {% csrf_token %}
    <input class="form-control" type="search" placeholder="Search for..." aria-label="Search for..." name="searched">
    <button class="btn btn-primary" type="submit"><i class="fas fa-search"></i></button>
    </form>
    </div>

Шаблон результатов поиска:

{% extends 'bugs/base.html' %}
{% block content %}
    <div class="container-fluid px-4">
        {% if searched %}
        <h4 class="mt-4">results for {{ searched }}</h4>
        {% endif %}

    </div>
{% endblock %}

Я пытался изменить метод, чтобы получить, я пытался изменить мой url и мой вид безрезультатно. и удаление crf просто делает тег url как ? в индекс, кажется, что это не вызывает ничего вообще.

Я могу дать два предложения, первое, чтобы вывести вне условия else, и второе, чтобы увидеть searched имеет значение или нет, распечатав его.

@login_required(login_url='login_register')
def search_site(request):
    if request.method == "POST":
        searched = request.POST['searched']
        print(f"searched value --> {searched}")
        context = {
            'searched': searched
        }
        return render(request, 'bugs/search_site.html', context)
    return render(request, 'bugs/search_site.html')

Шаблон результатов поиска:

{% extends 'bugs/base.html' %}
{% block content %}
    <div class="container-fluid px-4">
        {% if searched %}
        <h4 class="mt-4">results for {{ searched }}</h4>
        {% else %}
        <p>No value has come.</p>
        {% endif %}

    </div>
{% endblock %}

Я также думаю, что это должен быть другой шаблон в POST Метод проверьте его, вы предоставили search_site.html может быть это что-то вроде search_result.html.

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