Django:访问 domain.com/admin 时出现404,旧的urls文件不存在

0 投票
1 回答
1766 浏览
提问于 2025-04-16 07:41

我之前有一个看起来像这样的网址文件:

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Example:
url(r'^$', 'girls.views.home', name = 'home'),
url(r'^registerasboy$', 'girls.views.regb', name= 'regb'), 
#url(r'^registerasgirl$', 'girls.views.reg', name= 'regg'),
url(r'^thankyou$', 'girls.views.thankyou', name= 'thankyou'),
url(r'^newchick$', 'girls.views.newchick', name= 'newchick'),
url(r'^chicks$', 'girls.views.chicks', name= 'chicks'),
#url(r'^thankyou$', 'generalsettings.views.thankyou', name = 'thankyou'),
# Uncomment the admin/doc line below to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
#url(r'^reg$', 'generalsettings.views.home'),
# Uncomment the next line to enable the admin:
#(r'^admin/', include(admin.site.urls)),
#(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root':     settings.MEDIA_ROOT}),
)

这个网站是能正常工作的。我没有管理员权限。所以我决定把管理员那一行的注释去掉,但结果却出现了404错误。

页面未找到 (404)
请求方式:GET
请求网址:http://chicklister.com/admin

Using the URLconf defined in chick.urls, Django tried these URL patterns,
in this order:
^$ [name='home']
^registerasboy$ [name='regb']
^thankyou$ [name='thankyou']
^newchick$ [name='newchick']
^chicks$ [name='chicks']
^/(?P<path>.*)$
The current URL, admin, didn't match any of these.

这很奇怪,因为这里缺少了管理员那一行。然后,我进一步更新了我的网址设置为:

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

但我访问管理员页面时还是出现了:

Using the URLconf defined in chick.urls, Django tried these URL patterns,
in this order:
^$ [name='home']
^registerasboy$ [name='regb']
^thankyou$ [name='thankyou']
^newchick$ [name='newchick']
^chicks$ [name='chicks']
^/(?P<path>.*)$
The current URL, admin, didn't match any of these.

而且,其他网址都能正常工作,比如 www.domain.com/thankyou,这和我在打印的网址文件中的设置是一致的。

这怎么可能呢?感觉好像在某个地方记住了这个信息。

我做了以下步骤: 在 www 文件夹中搜索 'registerasboy',结果什么也没找到。 我更改了模板上的文字,以确保我更新的是正确的副本。 在 settings.py 文件中,我有以下设置:

ROOT_URLCONF = 'urls' 我注意到这似乎没什么用,因为一开始是 chic.urls

我到底做错了什么?我似乎连一个包含这些内容的文件都找不到了……

1 个回答

2

我来随便猜一下:

你有没有把管理员加到你的INSTALLED_APPS里,然后执行了syncdb,并重启了服务器呢?

如果你用的是Apache和mod_wsgi,重启服务器是很有用的。因为它不会自动检测代码的变化,所以你需要手动重新加载一下。

而开发服务器会自动重新加载代码。

关于这个问题的完整信息在这里: http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

撰写回答