【发布时间】:2012-08-13 12:25:10
【问题描述】:
我一直在网上寻找解决方案,但似乎找不到有效的解决方案。
我正在尝试覆盖特定型号的默认“索引”页面。我知道您可以像这样更改项目的 url.py 文件夹中的 URL 设置:
url(r'^items/(?P<itemId>\d+)/$', 'items.views.itemDetail')
虽然上面的 URL 映射工作正常,并且 itemDetail(request) 方法被正确调用,但类似这样:
url(r'^admin/homepage/$', 'homepage.views.index'),
似乎不起作用。我知道这行不通,因为这条线:
url(r'^admin/', include(admin.site.urls))
除非我直接转到管理员/主页,否则每次尝试更改上述行的模式都会导致错误。所以默认的管理页面消失了。我只是想将默认索引模板更改为不同的东西。没有将 URL 从 XXX/admin/homepage 完全更改为其他内容,我不知道如何解决这个问题。
任何帮助将不胜感激。
【问题讨论】:
-
为什么不起作用? URL 解析器只找到第一个匹配项;因此,无论后面的内容如何,任何 URL 都无法正常工作。
-
我认为 url(r'^admin/', include(admin.site.urls)) 优先。如果我对该行进行更改,请说 url(r'^admin/$', include(admin.site.urls)) 然后 url(r'^admin/homepage/$', 'homepage.views.index' ) 确实有效。但是所有其他管理页面都死了。这意味着我必须为所有这些管理页面创建视图。
-
我也认为只要您的自定义 url 定义出现在 urlconf (urls.py) 中的实际管理员定义之前,它就应该起作用!
-
1000Suns,它是怎么“死”的?你有例外吗?它会引发 404 吗?
-
我收到一条错误消息:NoReverseMatch at /admin/ Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': 'sites'}' not found
标签: django django-models django-admin django-templates django-views