2016-05-03 51 views
0

在我的Django頁面上,我在主工具欄(bootstrap導航欄)中有高級搜索按鈕。點擊此按鈕顯示具有高級搜索選項的模式窗口。提交後重定向並傳遞表單數據

其實,我不知道如何填寫表格並點擊「搜索」後如何重定向到搜索結果視圖。

我試過使用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中使用它,以便我可以進行查詢和顯示數據?

我還需要一些表單來驗證輸入數據。

任何幫助,建議?

+2

從你的問題中提出一些代碼請 –

+0

你的意思是在你點擊按鈕之後,你從django註銷了? – Windsooon

+0

是的,它註銷了管理員用戶並將用戶設置爲匿名。 – hebius

回答

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繼承或在我的視圖中找到其他方式獲取表單數據時。