django шаблон формы цели с динамическими c данными - PullRequest
0 голосов
/ 09 марта 2020

Я новичок в django шаблоне. у меня есть поле поиска в заголовке, и я хочу отправить искомое ключевое слово в этом формате search/q/{{keyword}}/

мой html код это

<form action="{% url 'content.search' q=searched_key %}" class="search-input">
    <input type="text" name="searched_key">
    <button type="submit"><i data-feather="search"></i></button>
</form>

я хочу получить входное значение и отправить но результат URL это
http://127.0.0.1: 8000 / contents / search / q //? искали_ключ = тест
как я могу сделать это правильно?

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

вы можете POST ваше поисковое значение в виде формы (не нужно использовать /search/q//?searched_key=test в URL), и ваше представление должно выглядеть примерно так:

def search_view(request):
    if request.method == "POST":
        search_key = form.save()
        search_result = Content.objects.filter(key=search_key)

    context = {
        'results': search_result,
    }
    return render(request, 'content.html', context) 
0 голосов
/ 09 марта 2020

Возможно, вам лучше использовать javascript для выполнения sh этого.

<form id="form-id">
    <input type="text" id="searched_key" name="searched_key">
    <button type="submit"><i data-feather="search"></i></button>
</form>

<script type="text/javascript">

function submitForm(e) {
    // Prevent default form submit
    e.preventDefault();
    // Get the search query
    let query = document.getElementById("searched_key").value;
    // redirect to the url with the query appended
    window.location.href = "/contents/search/" + query + "/";
    return false;
}

// Add an event listener to the form when the page loads
window.addEventListener('load', function() {
    document.getElementById("form-id").addEventListener('submit', submitForm);
});

</script>
...