在Mezzanine中,根据您要显示的内容,可以使用两个不同的URL。如果活动域位于子域或只是"常规"是否有办法检查内部 urls.py域?
这是两种不同的风格:
url('^$', direct_to_template, {'template': 'index.html'}, name='home'),
url('^$', mezzanine.blog.views.blog_post_list, name='home'),
我还没有找到一个可靠的方法。我想显示blog_post_list,如果我在子域(wildcard /例如sub.example.com)和index.html上,如果我在" main"域名(例如example.com)
答案 0 :(得分:2)
不,当您的应用启动并且仅查看路径时,会加载urls.py
。当前URL是request
对象的一部分,中间件和视图接收。
但是,您可以使用视图根据URL路径委派请求。
url('^$', my_view, name='home')
视图可以使用当前的request
对象委托给后续两个视图中的一个。
def my_view(request):
if 'something' in request.META['HTTP_HOST']:
return something_view(request)
else:
return another_view(request)
但是,有一个应用程序可以执行您想要执行的操作django-hosts。它允许根据主机加载不同的urls.py
文件。
from django_hosts import patterns, host
host_patterns = patterns('path.to',
host(r'api', 'api.urls', name='api'),
host(r'beta', 'beta.urls', name='beta'),
)