我想运行两个具有相同 url 模式的应用程序。我想避免使用特定于应用程序的 slug,例如 domain.com/pages/something-here 或 domain.com/blog/something-there。
我试过这个:
# urls.py
urlpatterns = patterns('',
url(r'^$', 'my.homepage.view'),
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('pages.urls')),
url(r'^', include('blog.urls')),
)
# pages/urls.py
urlpatterns = patterns('',
url(r'^(.+)/$', views.page),
)
# blog/urls.py
urlpatterns = patterns('',
url(r'^(.+)/$', views.post),
)
我的代码不起作用,无论哪个先出现(此处为 pages.urls)都可以,其他 url(用于博客)抛出 404。
提前致谢
编辑:我是这样做的:在与 settings.py 相同的目录中创建了glue.py。它将处理我的主页和这个调度程序视图:
def dispatcher(request, slug):
try:
page = get_object_or_404(Page, slug=slug)
return render(request, 'pages/page.html', {'page': page})
except:
post = get_object_or_404(Post, slug=slug)
return render(request, 'blog/post.html', {'post': post})
不知道行不行 我希望有更好的方法。
感谢您的评论。