如何在 django 中包含 urlpatterns?
Posted
技术标签:
【中文标题】如何在 django 中包含 urlpatterns?【英文标题】:how to include urlpatterns in django? 【发布时间】:2012-03-03 01:48:25 【问题描述】:在我的项目中,我有一个应用程序,它有自己的 urls.py 像这样
urlpatterns = patterns('',
(r'^(?P<language>\w+)/$', 'MainSite.views.home_page'),)
(以上文件在我的应用程序中)
我正在尝试将此文件包含在 main(project's) urls.py 中 像这样:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'', include('myproject.MainSite.urls')),
url(r'^admin/', include(admin.site.urls)),
)
if settings.DEBUG :
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
'document_root': settings.MEDIA_ROOT),
)
但在此之后我可以调用 MainSite 的(应用程序)视图,但我的管理 url 不起作用 我试过了
urlpatterns = patterns('',
(r'^$', include('myproject.MainSite.urls')),
url(r'^admin/', include(admin.site.urls)),
)
但在此之后,这使管理员工作,但我的应用程序的视图不会被调用, 我该如何解决这个问题。
【问题讨论】:
【参考方案1】:您将视图包含在根级别。因为它出现在管理员的 urlpattern 之前,所以第一个 urlpattern 会捕获 所有内容,因此不会将任何内容传递给管理员视图。
最简单的解决方法是简单地颠倒顺序:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
(r'', include('myproject.MainSite.urls')),
)
然后,您的视图只会捕获管理员没有捕获的任何内容。
【讨论】:
@abhishekworld 您可能会考虑接受答案。以上是关于如何在 django 中包含 urlpatterns?的主要内容,如果未能解决你的问题,请参考以下文章