をレンダリングGET render()
からGETパラメータを取得します。パスは、Djangoの者によるパラメータは、私はいくつかのDjangoのビューを通過しています日付フィルタを持っている()ショートカット
reverse()
でこれを行う方法はthis answerでしたが、render()
はURLを直接受け取りません。
私はそれを渡すrequest
に再度追加する必要があると思われますが、これを行う方法がわかりません。
をレンダリングGET render()
からGETパラメータを取得します。パスは、Djangoの者によるパラメータは、私はいくつかのDjangoのビューを通過しています日付フィルタを持っている()ショートカット
reverse()
でこれを行う方法はthis answerでしたが、render()
はURLを直接受け取りません。
私はそれを渡すrequest
に再度追加する必要があると思われますが、これを行う方法がわかりません。
私はあなたが誤解していると思いますrender
。生活の中でrender
の仕事は、HTMLテンプレートとコンテキスト辞書からcontent to the userでHttpResponse
を返すことです:
は、指定されたコンテキスト辞書 で特定のテンプレートを組み合わせて、そのレンダリングされたテキストでHttpResponseオブジェクトを返します。対照的に
、redirect
は新しいURL(即ち、そうGET
パラメータが含まれることができる)にユーザーをリダイレクトします。したがって、render
を使用する場合は、手動でGET
パラメータを保存する必要があります。
from datetime import date, datetime
date_query = request.session.get('date')
if not date_query:
date_query = request.GET.get("date", default_event_date())
if not isinstance(date_query, date):
date_query = datetime.strptime(date_query, "%Y-%m-%d").date()
request.session['date'] = date_query
d = date_query
そして、これは、あなたがそれに続くルートやビューへのあなたのGETパラメータを「繰り越し」ようになる:もちろん、あなたのような何かを行うことによって、ユーザのセッションにdate
を追加することでこの問題を回避することができます。
どうすれば 'GET'パラメータを手動で保存できますか?あまりにも言葉の問題のために謝罪が、それは私が意味したものです。 – 43Tesseracts
この特定のレンダリングでは、GETパラメータを変更しないでください。それらはレンダリングされたページから次のページへのページターン時にのみ変更する必要があります。したがって、GETパラメータを保持するということは、( 'request.GET.urlencode'を使用して)クエリ文字列をフォーマットし、' date'パラメータを必要とする各URLに追加することを意味します。 – 2ps
セッション提案をありがとう。とにかくこれはもっと良い解決策かもしれないと思います。私はそれを試してみるつもりです。 – 43Tesseracts
「フォワードスルー(render)()」とはどういう意味ですか? –
私がレンダリングした後、URLに '?date = 2016-12-30'を末尾に入れてほしい – 43Tesseracts
urls.pyファイルの関連部分のスニペットも貼り付けてください。 – 2ps