提交后重定向和传递表单数据

时间:2016-05-03 09:08:07

标签: javascript python django

在我的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中使用它,以便我可以进行查询并显示数据?

我还需要一些表格来验证输入数据。

任何帮助,建议?

1 个答案:

答案 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继承还是在我的视图中找到获取表单数据的其他方法。