Можно ли назначить несколько функций для одного URL в Django? - PullRequest
0 голосов
/ 17 декабря 2011

Скажем, у меня есть эти функции в моих views.py:

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.

Спасибо за вашу помощь.

1 Ответ

7 голосов
/ 17 декабря 2011

Идея файла urls заключается в том, что вы указываете платформе, какую функцию вызывать для данного URL.Если вы дадите ему более одной функции, как он узнает, куда отправить запрос?

Если вы хотите разделить функциональность на несколько разных функций, самое простое решение - создать диспетчерское представление, что-тонапример:

urls.py:

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

views.py:

def dispatch(request):
    if something:
        return foo(request)
    else:
        return bar(request)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...