2013-03-03 81 views
0

我的工作簡單的一個寵物商店應用Django的NoReverseMatch在/ PET/

我遇到這個錯誤幾次,我設法瞭解它,解決它,但在這種情況下。我不知道哪裏出了問題。一切似乎都很清楚。

它說我在我的store.html {%url world:brazil animal.id%}的位置有一個錯誤,但我已經定義了名稱空間。

Reverse for 'brazil' with arguments '('',)' and keyword arguments '{}' not found. 
    Error during template rendering 

    In template C:\djcode\mysite\pet\templates\store.html, error at line 5 
    Reverse for 'brazil' with arguments '('',)' and keyword arguments '{}' not found. 
    1  Sydney's Pet Store 
    2  {% if store %} 
    3  <ul> 
    4  {% for a in store %} 
    5  <li><a href ="{% url world:brazil animal.id %}">{{ a.name }}</li> 
    6  {% endfor %} 
    7  
    8  </ul> 
    9  {% endif %} 

我store.html

Sydney's Pet Store 
{% if store %} 
<ul> 
     {% for a in store %} 
    <li><a href ="{% url world:brazil animal.id %}">{{ a.name }}</li> 
    {% endfor %} 

</ul> 
{% endif %} 

我views.py

from pet.models import Store , Pet 
from django.shortcuts import render_to_response ,get_object_or_404 

def index(request): 
    store = Store.objects.all() 
    return render_to_response ('store.html',{'store':store}) 

def brazil(request , animal_id): 
    store = get_object_or_404(Store , Pet, pk=animal_id) 
    return render_to_response ('animal.html',{'store':store}) 

我的寵物的應用程序URL配置:

from django.conf.urls import patterns,include , url 

urlpatterns = patterns ('pet.views', 
    url(r'^$','index',name = 'index'), 
    url(r'^(?P<poll_id>\d+)/$','brazil',name ='brazil'), 

    ) 

我的主要URCONF:

from django.conf.urls import patterns, include, url 
    from django.contrib import admin 
    from django.conf import settings 
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
    from django.conf.urls.static import static 

    admin.autodiscover() 
    urlpatterns = patterns('', 

     url(r'^pet/',include('pet.urls' , namespace='world')), 

) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

    urlpatterns += staticfiles_urlpatterns() 

回答

2

因爲您沒有定義animal.id。你在視圖中渲染的只是商店變量。

Sydney's Pet Store 
{% if store %} 
<ul> 
     {% for a in store %} 
    <li><a href ="{% url world:brazil a.id %}">{{ a.name }}</li> 
    {% endfor %} 

</ul> 
{% endif %} 
+0

哦,你的救星。非常感謝你@catherine – donkeyboy72 2013-03-03 07:07:36

+0

不,它必須是:var_name = get_object_or_404(Model,pk = id) – catherine 2013-03-03 07:13:36

+0

好的,我要回去修復它 – donkeyboy72 2013-03-03 07:13:59