2011-12-17 2 views
0

Скажем, у меня есть эти функции в моем views.py:Можно ли назначить несколько функций одному URL-адресу в Django?

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, поэтому не использую действительно сложный jango jango.

Благодарим за помощь.

ответ

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) 
Смежные вопросы