Django 1.10 NoReverseMatch-退出但不匹配?
我想建立一个“列表”视图,在其中显示数据库中的所有图像。 这是模板:Django 1.10 NoReverseMatch-退出但不匹配?,django,image,templates,url,match,Django,Image,Templates,Url,Match,我想建立一个“列表”视图,在其中显示数据库中的所有图像。 这是模板: {% extends "base.html" %} {% block title %}Your images{% endblock %} {% block content %} <ul> {% for picture in images %} <a href="{% url "detail" id=picture.id slug=picture.slug %}
{% extends "base.html" %}
{% block title %}Your images{% endblock %}
{% block content %}
<ul>
{% for picture in images %}
<a href="{% url "detail" id=picture.id slug=picture.slug %}">
<img src="{{ picture.image.url }}" class="image-detail">
</a>
{% endfor %}
</ul>
{% endblock %}
可以看到,“detail”视图有两个参数:id和slug。
在上面的模板中,我得到了相应图片id和slug的参数(id=picture.id slug=picture.slug
)。
在我运行服务器之后,当我试图访问我网站上的列表页面时
我发现一个“NoReverseMatch”错误:
异常值:未找到参数为“()”且关键字参数为“{'id':1,'slug':'django and duke'}”的'detail'的相反值。已尝试0个模式:[]
我启动了shell,导入了图像模型,我想检查是否真的没有任何带有该id和slug的图像
>>> Image.objects.get(id=1,slug='django-and-duke')
<Image: Django and Duke>
你就是这个网址。所以,它应该是这样的:
<a href="{% url 'images:detail' id=picture.id slug=picture.slug %}">
一些想法:
{%url%}
中的id=
和slug=
部分不是必需的。没有他们也行。但是显性比隐性好,对吗异常值:找不到参数为“('arg1',…)”且关键字参数为“{'key1':kayvalue1,…}”的“”的反转。尝试了0个模式:[]
发生,然后99%的时间找到了url模式
(具有正确的args或/和kwargs),但缺少命名空间
。解决方案:{%url'命名空间:查看\u name'args/kwrags here%}
异常值时:找不到参数为“()”且关键字参数为“{}”的“”的反转。尝试了0个模式:[]
出现,然后99%的时间url模式
找到,但args或/和kwargs未被识别。解决方案:最好检查URL的声明/语法
<a href="{% url 'images:detail' id=picture.id slug=picture.slug %}">
一些想法:
{%url%}
中的id=
和slug=
部分不是必需的。没有他们也行。但是显性比隐性好,对吗异常值:找不到参数为“('arg1',…)”且关键字参数为“{'key1':kayvalue1,…}”的“”的反转。尝试了0个模式:[]
发生,然后99%的时间找到了url模式
(具有正确的args或/和kwargs),但缺少命名空间
。解决方案:{%url'命名空间:查看\u name'args/kwrags here%}
异常值时:找不到参数为“()”且关键字参数为“{}”的“”的反转。尝试了0个模式:[]
出现,然后99%的时间url模式
找到,但args或/和kwargs未被识别。解决方案:最好检查URL的声明/语法
这些模式在哪个URL.py中?如果它们不在主项目的URL.py中,那么您如何包含它们?该错误并不是说该项不存在,而是说它找不到您的URL模式。发布您的模型时,是否定义了
get\u absolute\u URL
方法?是否为您的应用程序指定了命名空间?可能您必须这样编写:
@Alasdair图像应用程序的url包含在项目的url中:url(r'^images/',include('images.urls',namespace='images'),
这些模式在哪些url.py中?如果它们不在主项目的URL.py中,那么您如何包含它们?该错误并不是说该项不存在,而是说它找不到您的URL模式。发布您的模型时,是否定义了get\u absolute\u URL
方法?是否为您的应用程序指定了命名空间?可能您必须这样编写:
@Alasdair图像应用程序的url包含在项目的url中:url(r'^images/',include('images.urls',namespace='images'),
<a href="{% url 'images:detail' id=picture.id slug=picture.slug %}">
urlpatterns = [
...
url(r'^', include('images.urls', namespace='images'))
]