【问题标题】:how to include urlpatterns in django?如何在 django 中包含 urlpatterns?
【发布时间】: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)),
    )

但在此之后,这使管理员工作,但我的应用程序的视图不会被调用, 我该如何解决这个问题。

【问题讨论】:

    标签: django django-admin django-urls


    【解决方案1】:

    您将视图包含在根级别。因为它出现在管理员的 urlpattern 之前,所以第一个 urlpattern 会捕获 所有内容,因此不会将任何内容传递给管理员视图。

    最简单的解决方法是简单地颠倒顺序:

    urlpatterns = patterns('',
        url(r'^admin/', include(admin.site.urls)),
        (r'', include('myproject.MainSite.urls')),
    )
    

    然后,您的视图只会捕获管理员没有捕获的任何内容。

    【讨论】:

    • @abhishekworld 您可能会考虑接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2021-07-27
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2020-05-29
    相关资源
    最近更新 更多