想知道我是否可以用第二双眼睛得到一些帮助。大约两个月前开始在闲暇时间学习Django。长话短说:我的索引和帖子视图很好。我最近创建了一个联系人html \模板和视图,它看起来像是回到我的索引页面?这是我的项目urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
from .settings import MEDIA_ROOT
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include('blog.urls')),
url(r'^contact/', include('blog.urls')),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': MEDIA_ROOT}),
)
这是我的应用urls.py
from django.conf.urls import patterns, include, url
from blog import views
urlpatterns = patterns('blog.views',
url(r'^(?P<post_name>\w+)/$', views.post, name='post'),
url(r'^contact/$', views.contact, name='contact'),
url(r'^$', views.index, name='index'),
)
如果我将我的联系人视图更改为我的默认视图,那么它就可以了。
urlpatterns = patterns('blog.views',
url(r'^(?P<post_name>\w+)/$', views.post, name='post'),
url(r'^$', views.contact, name='contact'),
#url(r'^$', views.index, name='index'),
)
当我点击我页面上的联系人链接时,只要将其切换回原始状态,它就会直接进入我的索引页面。我必须对URL调度程序部分做错了,但我不确定是什么。
答案 0 :(得分:0)
请注意您应用的网址urls.py中的网址顺序。尝试将views.contact
视图放在views.post
视图之前。请记住:Django选择第一个匹配的正则表达式,即views.post
视图。
我遇到了类似的问题并描述了解决方案here。
答案 1 :(得分:0)
您的联系人网址与网址&#34; / contact&#34;不匹配,匹配&#34; / blog / contact&#34;和&#34; /联系/联系&#34;。由于您在这两个前缀下都包含了博客urlpatterns,因此匹配&#34; / contact&#34;是前缀后没有任何内容的URL,即索引。
您可能根本不想将联系模式放入包含的文件中:只需将其直接匹配到基础项目文件中即可。
答案 2 :(得分:0)
这里你的联系人视图有url / contact / contact /和index视图有url / contact /
所以你已经将项目网址重写为
from django.conf.urls import patterns, include, url
from django.contrib import admin
from .settings import MEDIA_ROOT
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include('blog.urls')),
url(r'^', include('blog.urls')),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': MEDIA_ROOT}),
)