2

私は Django プロジェクトに取り組んでおり、Google または Stackoverflow で見つけられなかった問題がありました。それで、最初の質問をする時が来たと思いました。

私がやろうとしているのは、ユーザーがドロップダウンメニューを持ち、選択してオプションを選択し、再生ボタンをクリックするサイトを持っていることです。これは Django Form で作成されています。(HTML と CSS のみで作成された) ポップアップ ウィンドウが表示されます。したがって、実行する必要があるのは、ビューで変数を 0 から 1 に設定し、テンプレートでポップアップをレンダリングすることだけです。これは、私が何を意味するかをよりよく理解するためのコードです。

....
{% if playing_track == 1 %}
    <div class="popup_background">
        <div class="popup_window">
            <p class="popup_text">Route {{ Name_Track }} is gestart</p>
        </div>
    </div>
{% endif %}
....

したがって、playing_track が 1 に設定されている場合、ポップアップが表示されます。これを処理する必要があるビューのコードは次のとおりです。

....
playing_track = []

if request.method == 'POST':
    form_run_track = RouteRun(request.POST)
    if form_run_track.is_valid():
        Name_Track = form_run_track.cleaned_data['Name']

        playing_track = 1

        return HttpResponseRedirect('/tracks/')
    else:
        return HttpResponseRedirect('/error/')
else:
    form_run_track = RouteRun
....

本当の質問ですが、なぜこれがうまくいかないのでしょうか?

値が 1 に設定されていることと関係があると思いますが、リロード/リダイレクトされると、再び 0 に設定されます。

私は本当に Django の初心者で (HTML/CSS をたくさんやったことがあります)、以前に C でプログラミングしたことがあります。

どんな助けでも大歓迎です。事前に感謝します!

PS違いがある場合は、Django 1.5.1とPython 2.7を使用しています。

4

1 に答える 1

0

ユーザーが「再生」リンクをクリックしたときに、Ajax を使用してポップアップをレンダリングします (つまり、render_to_string)。または、JQuery を使用してポップアップを表示します。どちらも onClick が必要で、コードを書くのにかなり簡単です。サーバーとの間でデータを送受信する必要がある場合は Ajax 元のテンプレート ロードからすべてをロードしている場合は JQuery。

ところで、(テンプレートから)ビューに変数を設定する唯一の方法は、リクエストを介して送信することです。これには、ページのリロードが含まれます。Ajax の方がはるかに優れています :)

于 2013-08-29T09:56:44.287 に答える