说我在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行话。
感谢您的帮助。
答案 0 :(得分:7)
你的url文件背后的想法是你告诉框架为给定的URL调用什么函数。如果你给它多个功能,它将如何知道发送请求的位置?
如果您想将功能分成几个不同的功能,最简单的解决方案是创建一个调度视图,如下所示:
urls.py:
urlpatterns = patterns('',
(r'^test/$', 'myapp.views.dispatch'),
)
views.py:
def dispatch(request):
if something:
return foo(request)
else:
return bar(request)