2011-12-17 41 views
0

は、私は私のviews.pyでこれらの機能を持っていると言う:複数の関数をDjangoの1つのURLに割り当てることはできますか?

from django.shortcuts import render_to_response 

def foo(request): 
    a = 2 
    return render_to_response('test.html', {'a': a}) 

def bar(request): 
    b = 3 
    return render_to_response('test.html', {'b': b}) 

これは私urls.py次のようになります。

urlpatterns = patterns('', 

(r'^test/$', views.foo, views.bar), 

) 

明らかにこれは私の本当のコードではありませんが、割り当てることが可能であろう1つのURLにいくつかのビュー機能?もしそうなら、私は間違って何をしていますか?私はDjangoにはまったく新しいものなので、本当に複雑なDjangoの専門用語を使用しないでください。

ありがとうございました。

答えて

7

あなたのURLファイルの背後にある考え方は、あなたが与えられたURLのためにどのような関数を呼び出すかをフレームワークに伝えていることです。複数の機能を提供する場合は、どのように要求を送信するかをどのように知っていますか?

urls.py:

urlpatterns = patterns('', 
    (r'^test/$', 'myapp.views.dispatch'), 
) 

ビュー

あなたは、いくつかの異なる機能に機能を分離したい場合

は、最も簡単な解決策は、以下のようなものをディスパッチビューを作成することです。 py:

def dispatch(request): 
    if something: 
     return foo(request) 
    else: 
     return bar(request) 
関連する問題