2011-12-17 75 views
0

說我有我的views.py這些功能:是否可以將多個函數分配給Django中的一個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), 

) 

顯然,這不是我真正的代碼,但它有可能分配幾個查看功能到一個URL?如果是這樣,我做錯了什麼?我對Django很陌生,所以不要使用非常複雜的Django術語。

感謝您的幫助。

回答

7

你的urls文件背後的想法是,你告訴框架什麼函數來調用給定的網址。如果你給它多個函數,它將如何知道在哪裏發送請求?

如果你要的功能分離成幾個不同的功能,最簡單的解決方案是創建一個調度視圖,類似如下:

urls.py:

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

意見。 py:

def dispatch(request): 
    if something: 
     return foo(request) 
    else: 
     return bar(request) 
相關問題