2

第一次使用django,需要一些帮助......

错误:

Reverse for 'anuncio' with arguments '(u'Restaurante Avenida',)' and keyword arguments '{}' not found.

请求方法:GET Django 版本:1.5.2 异常类型:NoReverseMatch 异常值:

未找到带有参数“(u'Restaurant Avenida',)”和关键字参数“{}”的“anuncio”的反向操作。

异常位置:/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py 在渲染中,第 424 行 Python 可执行文件:/usr/bin/python Python 版本:2.7.3

网址:

url(r'^anuncio/(?P<titulo>\d+)$', anuncio),

模板:

<a href="{% url 'anuncio' user.userprofile.anuncio %}"> {{user.userprofile.anuncio}} </a>

看法:

def anuncio(request, titulo):

Anuncio = Anuncio.objects.get(titulo = titulo)

variables = RequestContext(request, {'anuncio': Anuncio})

return render_to_response('anuncio.html', variables)
4

1 回答 1

2

你的问题在这里:

url(r'^anuncio/(?P<titulo>\d+)$', anuncio),

\d+匹配数字。

你需要的是匹配字母和空格。

尝试

url(r'^anuncio/(?P<titulo>[\w ]+)$', anuncio, name = 'anuncio'),

也在这里

Anuncio = Anuncio.objects.get(titulo = titulo)

请使用不同的变量名。不要覆盖模型名称。

anuncio = Anuncio.objects.get(titulo = titulo)

还有一件事,.get()如果没有匹配会抛出错误。所以,你可能要考虑

anuncio = get_object_or_404(Anuncio, titulo = titulo)

阅读更多关于get_object_or_404

最后一件事:这里

<a href="{% url 'anuncio' user.userprofile.anuncio %}"> {{user.userprofile.anuncio}} </a>

我建议使用idanuncio字段。类似user.userprofile.id并保持regex原样的\d+东西 - 在模型对象中避免空格(并且是唯一的)的东西

于 2013-09-30T01:28:08.107 回答