Django:如何将变量从锚标记传递到 url?
Django: How can I pass a variable into the url from an anchor tag?
又是 Django...
我只见过一种方法来执行此操作,但出现错误。
我有 url:
url(r'^wish_item/(?P<id>\d#)$', views.wish_item, name="wish_item")
和视图,
def wish_item(request, id):
但我模板中的锚标记导致我出现 NoReverseMatch。
{% for x in myitems %}
<a href="{% url 'wish_item' %}?id={{x.id}}">{{x.item}}</a>
{% endfor %}
将变量传递给 url 的正确方法是什么?我的 url 中的正则表达式有什么问题还是我在模板标签中写错了?两个?
编辑:
将模板标签更改为
<a href="{% url 'wish_item' id=x.id %}">{{x.item}}</a>
但我仍然收到错误(在将 url 清除为 /wish_item 之后,因为正则表达式也给了我一个错误):
Reverse for 'wish_item' with keyword arguments '{u'id': 1}' not found. 1 pattern(s) tried: ['wish_item']
它比评论允许的要长,所以:
参数是路径的一部分,不是查询参数:{% url 'wish_item' id=x.id %}
您的正则表达式(很可能)是错误的。
(?P<id>\d#)
这只接受一位数字后跟一个井号。大概你是这个意思?
(?P<id>\d+)
也就是一位还是多位?
作为参考,您有完整的正则表达式语法 over here。顺便说一下,如果你只有一个数字 id,我建议坚持这样做:
(?P<id>[0-9]+)
不同之处在于 \d
还将接受其他标记为 unicode 数字的字符,您以后可能不会处理这些字符。
又是 Django... 我只见过一种方法来执行此操作,但出现错误。
我有 url:
url(r'^wish_item/(?P<id>\d#)$', views.wish_item, name="wish_item")
和视图,
def wish_item(request, id):
但我模板中的锚标记导致我出现 NoReverseMatch。
{% for x in myitems %}
<a href="{% url 'wish_item' %}?id={{x.id}}">{{x.item}}</a>
{% endfor %}
将变量传递给 url 的正确方法是什么?我的 url 中的正则表达式有什么问题还是我在模板标签中写错了?两个?
编辑: 将模板标签更改为
<a href="{% url 'wish_item' id=x.id %}">{{x.item}}</a>
但我仍然收到错误(在将 url 清除为 /wish_item 之后,因为正则表达式也给了我一个错误):
Reverse for 'wish_item' with keyword arguments '{u'id': 1}' not found. 1 pattern(s) tried: ['wish_item']
它比评论允许的要长,所以:
参数是路径的一部分,不是查询参数:
{% url 'wish_item' id=x.id %}
您的正则表达式(很可能)是错误的。
(?P<id>\d#)
这只接受一位数字后跟一个井号。大概你是这个意思?
(?P<id>\d+)
也就是一位还是多位?
作为参考,您有完整的正则表达式语法 over here。顺便说一下,如果你只有一个数字 id,我建议坚持这样做:(?P<id>[0-9]+)
不同之处在于
\d
还将接受其他标记为 unicode 数字的字符,您以后可能不会处理这些字符。