2016-02-02 80 views
1

這個問題與my last question有很大關係。Django模板中的URL問題

我已經看到,使用模板創建一些Django版本的問題,我跟着我的教程,我認爲這是一個錯誤的網址。這裏是我的urls.py:

from django.conf.urls import patterns, url 
from django.contrib import admin 

urlpatterns = patterns('', 
url(r'^preguntas/$', 'preguntasyrespuestas.views.index', name='preguntas'), 
url(r'^preguntas/(?P<pregunta_id>\d+)/$', 'preguntasyrespuestas.views.pregunta_detalle', name='pregunta_detalle') 
) 

和鏈接不工作是在index.html文件:

{% extends "base.html" %} 

{% block title %}Questions{% endblock %} 

{% block content %} 
{% for pregunta in preguntas %} 
<a href="(% url "pregunta_detalle" pregunta.id %}">{{ pregunta.asunto }} ?</a><br/> 
{% endfor %} 
{% endblock %} 

而且,這裏是我的views.py:

from django.http import HttpResponse,Http404 
from preguntasyrespuestas.models import Pregunta 
from django.shortcuts import get_object_or_404, render_to_response 

def index(request): 
    preguntas = Pregunta.objects.all() 
    return render_to_response('preguntasyrespuestas/index.html', 
            {'preguntas': preguntas}) 

def pregunta_detalle(request, pregunta_id): 
    pregunta = get_object_or_404(Pregunta, pk=pregunta_id) 
    return render_to_response('preguntasyrespuestas/pregunta_detalle.html', 
            {'pregunta': pregunta}) 

瀏覽器報告的錯誤表示類似於:

Using the URLconf defined in primerproyecto.urls, Django tried these URL patterns, in this order: 
^preguntas/$ [name='preguntas'] 
^preguntas/(?P<pregunta_id>\d+)/$ [name='pregunta_detalle'] 
The current URL, preguntas/(% url, didn't match any of these. 

相反,如果我在瀏覽器「127.0.0.0.1:8000/preguntas/1」中鍵入URL,它會顯示。什麼樣的URL連接可能是錯誤的?找不到答案...非常感謝,謝謝

回答

2

它應該工作,如果您使用URL名稱周圍的單引號。您還需要改變開括號中的href的花括號{

<a href="{% url 'pregunta_detalle' pregunta.id %}">{{ pregunta.asunto }} ?</a> 
     ^ ^   ^
+1

你實際上並不需要更改報價出現;由於HTML標籤和模板標籤位於不同的上下文中,因此不會感到困惑。 –

+0

有趣 - 我沒有意識到。謝謝你的提示。 – gtlambert