2017-10-16 10 views
0

Webページ/関数間で変数を渡す方法は?Webページ間でのdjangoグローバル変数?

例えば、私がウェブページ "test3.html"にアクセスしたとき、test1.htmlとtest2.htmlを訪れて増加する "グローバル"変数である変数a_test1とa_test2の合計を取得したいとします。 test1.html、test2.html、およびtest3.htmlは、複数回で独立して訪問することができます。次のコードはそのままでは動作しませんが、なぜかa_test1とa_test2のグローバル変数を何とか作ることができますか?それはできますか?

"request"パラメータでこれらの変数を渡すこともできますか?そんなことができますか? views.pyで

urlpatterns = [ 
    url(r'^test1/$', views.test1), 
    url(r'^test2/$', views.test2), 
    url(r'^test3/$', views.test3), 
] 

def test1(request): 
    a_test1=1+a_test1 
    return render(request,'test1.html',{'a_test1': a_test1}) 
    #other stuffs 

def test2(request): 
    a_test2=1+a_test2 
    return render(request,'test2.html',{'a_test2': a_test2}) 
    #other stuffs 

def test3(request): 
    a_test3=a_test1+a_test2 
    return render(request,'test3.html',{'a_test3': a_test3}) 
    #other stuffs 
+0

私はこれを行うために必要されていないが、あなたはこれを行うには、新しいクラスを作成してみてくださいすることができます。変数をクラスに入れ、ページを読み込むたびにインクリメントします。 –

+0

グローバル変数は、すべてのユーザーで同じになります。あなたのシステムは一人だけで使用されますか? – Selcuk

+0

Hmmmは、特定のセッションの「グローバル」変数でなければならないようです。それはできますか? – YeP

答えて

3

あなたが複数のテンプレートとビュー間で変数を共有するために、セッション変数を使用することができます!

def test1(request): 
    a_test1=1+a_test1 
    request.session['my_variable'] = a_test1 
    return render(request,'test1.html',{'a_test1': a_test1}) 

これで、あなたのサイトのどこでもrequest.session ['my_variable']にアクセスできます。

https://docs.djangoproject.com/en/1.11/topics/http/sessions/

+0

これは絶対に正しいアプローチですが、 'request.session'はそれ以外の方法ではありません。 –

+0

私は自分のasnwerを更新しました!それについて申し訳ありません:) –

+0

これは素晴らしいです。まさに私が探しているもの!どうもありがとう! – YeP

関連する問題