2011-07-27 4 views
0

私のdjang URLパターンファイルでは、サブURLの束を保持したいと思いますが、私はそれを醜いものにしたくありません。Djangoのurl.pyファイルの複数のサブURLの処理

私は私のAjaxリクエスト(それはそれを取得要求に応じて、異なるJSONファイルを出力

例()私のurl.py内のすべてのファイルハンドルがあります。フォームで :(URL、マップを基本的に) (ajax/do_a, ajax.do_a) ajax/do_b, ajax.do_b) ajax/do_c, ajax.do_c) ajax/do_d, ajax.do_d)

これらは、例えば、すべてのサブURLです。 mywebsite.com/ajax/do_a mywebsite.com/ajax/do_b など

do_a、do_b、do_c、およびdo_dされていますすべての異なるリクエストハンドラ同じように "ajax.py"ファイルに入れてください。私は実際に、私のurls.pyファイルにajax要求のためのこれらのURLをすべて埋めたいとは思わない。私はこれを移動することを考えていたので、私はurl.pyファイルに ajax/ を持っていて、どういうわけか(ajax.pyファイル内の)リクエストハンドラのajax/request urlを解析して、 "ajax /"。私はこれを行う方法やこれが良いアイデアであるかどうかはわかりません....誰かがアドバイスを提供することができますか?ありがとう:)

+0

私はそれらのサブURLを呼び出すことはありません、とあなたは[を見てみたいことがあり名前付きグループ](https://docs.djangoproject.com/ja/1.3/topics/http/urls/#named-groups)または[URLのキャプチャ](https://docs.djangoproject.com/ja/1.3/topics/http/urls /#named-groups)を参照してください。 –

+0

すべてのビューは一意のビューである必要がありますか、または 'www.example.com/ajax/do_a'の' do_a'部分を同じビューに渡すことはできますか? –

+0

@j_sykあなたの質問が分かりません – aerain

答えて

1

これらを処理するためのディスパッチャビューを設定することができます。その後

(r'^ajax/do_(?P<do_token>(\d+))/$', 'do_dispatcher', {}, "di_dispatcher"), 

、自分でそれを処理するためのビューを与える:あなたのurls.pyで、例えば

def do_a(request): 
    pass 
def do_b(request): 
    pass 
def do_c(request): 
    pass 

DO_LOOKUP = { 
    'a' = do_a, 
    'b' = do_b, 
    'c' = do_c, 
} 

def do_dispatch(request, do_token): 
    do_func = DO_LOOKUP.get(do_token, None) 
    if do_func is None: 
     return HttpResponseNotFound("No do could be found for token '%s'!" % do_token) 
    else: 
     return do_func(request) 
関連する問題