2016-05-03 14 views
0

私のDjangoページでは、メインツールバー(ブートストラップナビバー)で検索ボタンを上げました。このボタンをクリックすると、詳細検索オプション付きのモーダルウィンドウが表示されます。投稿後にフォームデータをリダイレクトして渡す

実際には、フォームに入力して[検索]をクリックした後、検索結果ビューにリダイレクトする方法はありません。

JavaScriptのwindow.location.replaceを使用しようとしましたが、AnonymousUserに切り替わりました。フォームデータをSearchResultViewに渡す方法がわかりません。現時点では一般的に

私は非常に単純なスケルトン持っている:私はJSを使用してフォームを送信した後にリダイレクトしています

class SearchView(TemplateView): 
    """View for displaying search results.""" 

    template_name = 'app/search.html' 

を:

<script type="text/javascript"> 
    function search_click(event) { 
     event.preventDefault(); 
     window.location.replace("http://localhost:8000/app/search"); 
    } 
</script> 

しかし、それは、管理者ユーザーがログアウトしていることを引き起こし、私はanonymoususerとしてログインしています。 フォームから検証へデータを渡す方法、およびSearchViewでそのデータを使用してクエリを作成してデータを表示する方法はありますか?

入力データを検証するためのフォームも必要です。

ご意見、ご提案はありますか?

+2

あなたのビューからいくつかのコードを入れてください –

+0

ボタンをクリックすると、あなたはdjangoからログアウトしましたか? – Windsooon

+0

はい、管理者ユーザーをログアウトし、匿名ユーザーに設定します。 – hebius

答えて

0

[OK]を、私は私は私の問題を解決:)

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から継承するか、フォームデータを取得するための他の方法を私のビューで見つけるべき場合に限り、

関連する問題