在我的Django页面上,我在主工具栏(bootstrap navbar)中有高级搜索按钮。单击此按钮可显示带有高级搜索选项的模态窗口。
实际上,在填写表单并点击"搜索"后,我不知道如何重定向到搜索结果视图。
我尝试使用JavaScript的window.location.replace但是它导致切换到AnonymousUser而我不知道如何将表单数据传递给我的SearchResultView。
目前我只有一个非常简单的骨架:
class SearchView(TemplateView):
"""View for displaying search results."""
template_name = 'app/search.html'
我在使用js提交表单后重定向:
<script type="text/javascript">
function search_click(event) {
event.preventDefault();
window.location.replace("http://localhost:8000/app/search");
}
</script>
但它导致管理员用户注销,我以匿名用户身份登录。 如何将数据从表单传递到验证以及如何在我的SearchView中使用它,以便我可以进行查询并显示数据?
我还需要一些表格来验证输入数据。
任何帮助,建议?
答案 0 :(得分:0)
好的,我想我解决了我的问题:)
在我的表单之前的HTML中,我把:
<form action="{% url 'search' %}" method="post">
在我的views.py中:
class SearchView(TemplateView):
"""View for displaying search results."""
def get_context_data(self, **kwargs):
context = super(SearchView, self).get_context_data(**kwargs)
return context
def post(self, request, *args, **kwargs):
return render(request, "app/search.html")
我不确定我是应该从FormView继承还是在我的视图中找到获取表单数据的其他方法。