【发布时间】:2016-02-02 09:56:19
【问题描述】:
这个问题和my last question有很大关系。
我已经看到使用模板会在我正在关注的教程中产生一些 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.
相反,如果我在浏览器中键入 URL '127.0.0.0.1:8000/preguntas/1',它就会出现。什么样的 URL 连接可能是错误的?找不到答案...非常感谢,谢谢
【问题讨论】:
标签: python django templates url