2017-10-19 12 views
0

urls.pyファイルでリクエストオブジェクトの取得方法を知ることができません。Django:urls.pyでリクエストオブジェクトを取得する方法

私は

from django.http.request import HttpRequest 

をインポートしようとしましたが、私はここで立ち往生しています。 誰でも助けることができますか?

編集コメントを答えるために:

私はキャッシュ項目をクリアできるようにするために新しいキャッシュデコレータを設定しようとしています:ここMihajloからの回答をもとに

Expire a view-cache in Django?

def simple_cache_page(cache_timeout): 
    """ 
    Decorator for views that tries getting the page from the cache and 
    populates the cache if the page isn't in the cache yet. 

    The cache is keyed by view name and arguments. 
    """ 
    def _dec(func): 
     def _new_func(*args, **kwargs): 
      key = func.__name__ 
      if kwargs: 
       key += ':' + request.LANGUAGE_CODE + ':'.join([kwargs[key] for key in kwargs]) 

      response = cache.get(key) 
      if not response: 
       response = func(*args, **kwargs) 
       cache.set(key, response, cache_timeout) 
       print "set key", key 
      else: 
       print "key exists", key 
      return response 
     return _new_func 
    return _dec 

この関数をurls.pyに配置すると仮定しました。多分それは良い考えではなかったでしょうか?そして、私はキーを構築するための要求から言語コードが必要です。

+2

への関数呼び出しを変更:

はしかし、私はあなたがに署名を変更した場合に読みやすいと思います。 url configは、サーバーの起動時に、要求が処理される前にロードされます。あなたが '要求 'で何をしたいのかを説明すれば、別のアプローチを提案することができます。 – Alasdair

+0

私は私の意図を提供するために質問を編集しました。 – caliph

答えて

2

_new_funcメソッドでは、要求は現在、最初の引数args[0]です。

def _new_func(request, *args, **kwargs): 

とあなたがこれを行うことはできません

response = func(request, *args, **kwargs) 
関連する問題