2009-04-18 12 views

答えて

3

いつでもデコレータを書くことができます。例えば。 (未テスト)のようなもの:

def map_params(func): 
    def decorated(request): 
     return func(request, **request.GET) 
    return decorated 

@map_params 
def some_view(request, param1, param2): 
    ... 
+0

ニース。それがうまくいくと思います。非常にパリティー。 :) +1 –

1

私はそれはそれはビュー関数に引数として渡すために取得することが可能ですわからないんだけど、なぜあなたはrequest.GETからGET変数にアクセスすることはできませんか?そのURLを指定すると、Djangoはrequest.GET['param1']が10、request.GET['param2']が20となります。そうでなければ、何か奇妙な正規表現を思いついて試してみる必要があります。

1

私はパオロと同意します...後のものは?おそらくGETパラメータであり、おそらくそのように扱われるべきである。

from django.http import Http404 
def some_view_proxy(request): 
    if 'param1' in request.GET and 'param2' in request.GET: 
     return some_view(request, request.GET['param1'], 
          request.GET['param2']) 
    raise Http404 

それとも、ちょうどこのようsome_view()を定義して使用することができます:それはあなたが本当にあなたが質問で述べてきたようにsome_view()の定義を維持したい場合は、あなたのような何かができる、と述べましたGET params。ただ好奇心が強い、なぜあなたはそれを望みますか?

+0

私はこの原因を必要とする - その使用以下のコードを、私は多分この –

1

Djangoと戦う代わりに、some_view/10/20をリクエストしてから、urls.pyを設定して引数を抽出するのはなぜですか?

+0

+1のためにデコレータを行うことができますURLを使用 - すべてがうまく機能。 –

+0

私は戦っていない、それは私のjsonサービス、jqueryは送信するparams、多くの異なると多くの必要はありません。それはなぜ簡単です。 –

関連する問題