我想根据 url 加载特定视图,例如:
url(r'^channel/(?P<channel>\d+)/$', ---, name='channel_render'),
根据传入 url 的通道,我想加载特定的视图文件。我尝试这样做:
def configure_view(channel):
print channel
urlpatterns = patterns('',
url(r'^channel/(?P<channel>\d+)/$', configure_view(channel), name='channel_render'),
但显然频道参数没有被传入。有什么办法可以做到这一点吗?我能想到的唯一其他解决方案是加载管理器视图,然后从那里加载相关的视图文件。如果这是唯一的方法,如何从视图内重定向到另一个视图文件?
你可以做这样的事情。
#urls.py
url(r'^channel/(?P<channel>\d+)/$', switcher, name='channel_render'),
#views.py
def switcher(request, channel):
if channel == 'Whatever':
return view_for_this_channel()
def view_for_this_channel()
#handle like a regular view
如果使用基于类的视图,则您的调用switcher()
看起来像这样:
#views.py
def switcher(request, channel):
if channel == 'Whatever':
return ViewForThisChannel.as_view()(request) # <-- call to CBV
def ViewForThisChannel(View):
#handle like a regular class-based view
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)