同じURLパターンで2つのアプリを実行したいと思います。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})
大丈夫かわかりません。もっと良い方法があるといいのですが。
コメントありがとうございます。