2016-06-21 10 views
0

リクエスト変数を使用してビューセット関数でリクエストパラメータを取得できることがわかりました。 例:Djangoの設定やその他の変数からリクエストパラメータを取得できますか?

@detail_route(methods=['get']) 
def mysampleviewsetfunction(self, request): 
    print request 

しかし、私はいくつかの共通の変数からのリクエストにアクセスできるようにしたいです。その目的は、すべてのビューセットから呼び出すことができる共通の関数を書くことです。この共通関数は、呼び出されたビューセットに応じて要求パラメータにアクセスできる必要があります。しかし何らかの理由で、私はこの共通の機能にリクエストパラメータを送信したくありません。 私のコードは次のようになります。

@detail_route(methods=['get']) 
def mysampleviewsetfunction(self, request): 
     commonfunction() 

def commonfunction(): 
     print xxxx.request 

この「XXXX」は、現在のビューセットの要求を保存するいくつかのグローバルDjangoの変数でなければなりません。現在のビューセットの要求を格納するグローバル変数はありますか?

+1

を動作しませんので、 'デフcommonfunction(要求)を機能させるparamsはとあなたが要求を置くことができないのはなぜあなたはグローバル変数を使用することができますどのような方法がありません: 印刷request'は? –

+1

値を変更できるグローバル変数は、非同期フレームワークではうまく動作しません。同時に2人のユーザーがあなたのウェブサイトにアクセスする場合、どのリクエストを使用すると思われますか? – Sayse

+0

@ ConstantinMoiseenko:共通の機能は長い間実装されていましたが、今まで要求パラメータにアクセスする必要はありませんでした。今、関数内のリクエストパラメータにアクセスしたいが、それは共通関数を呼び出すすべての関数を変更する必要があることを意味する(つまり、共通関数は追加のパラメータ 'request'で呼び出されなければならない)。私は、共通変数からのリクエストにアクセスする方法があれば、すべての関数を変更する手間を省くことができたと思っています。 – linuxfreak

答えて

1

すべての機能を変更する手間を省くことができます。

デフォルトを指定する必要はありません。

def commonfunction(request=None): 

もちろんこれは、既存の関数呼び出しを使用すると、要求がこの機能では何もないではないことを確認するチェックをする必要がありますので、あなたがそれらを更新するまで、要求を使用することができなくなることを意味します。

ことがasyncronously

関連する問題