2015-11-02 190 views
0

我的urls.py是找不到網頁(404)錯誤在Django

from django.conf.urls import patterns,url 
from rango import views 
urlpatterns=patterns('',url(r'^$',views.index,name='index')) 
urlpatterns=patterns('',url(r'^about/$',views.about,name='about')) 

我views.py是

from django.shortcuts import render 
from rango.models import Category 
# Create your views here. 
from django.http import HttpResponse 
def index(request): 
    category_list = Category.objects.order_by('-likes')[:5] 
    context_dict={'categories':category_list} 
    return render(request, 'rango/index.html', context_dict) 
def about(request): 
    return HttpResponse("go to index") 

當我試圖去我越來越頁面地址http://127.0.0.1:8000/rango未找到。但我可以去地址http://127.0.0.1:8000/rango/about

當我刪除urls.py中的about url模式時,我能夠轉到地址http://127.0.0.1:8000/rango而不是http://127.0.0.1:8000/rango/about,因爲about url模式不存在。

我無法同時訪問這兩個網址。

回答

4

您已經定義了urlpatterns兩次。包含關於視圖的第二個模式會替換第一個模式,這會阻止您訪問索引視圖。

相反的,

urlpatterns=patterns('',url(r'^$',views.index,name='index')) 
urlpatterns=patterns('',url(r'^about/$',views.about,name='about')) 

它應該是:

urlpatterns = patterns('', 
    url(r'^$', views.index, name='index'), 
    url(r'^about/$', views.about, name='about'), 
) 

在Django中1.7+,你不需要使用任何patterns多,所以您可以將其簡化爲

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^about/$', views.about, name='about'), 
] 
+0

Thanks.The問題解決了 –