我是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//?searched_key=test
我怎样才能正确地做到这一点?
答案 0 :(得分:0)
使用javascript完成此操作可能更好。
<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>
答案 1 :(得分:0)
您可以POST
的形式使用搜索值(不需要在网址中使用/search/q//?searched_key=test
),并且您的视图应该是这样的:
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)