如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 url django 中添加用户名

如何在 django 表单中包含 id 字段?

django如何在模板中包含javascript

如何在 Django 模型中包含日期选择器?

Django - 如何在序列化的 QuerySet 中包含带注释的结果?

Django:如何在 list_display 中包含内联模型字段?