Django - 查询字符串时如何设置正则表达式

时间:2016-10-06 06:01:26

标签: django django-queryset

我在数据库中有一些字符串,如下所示:

|pay_tocken                               |
|-----------------------------------------|
|d7fe6c3d52cab958a67d51a5f18a2288ad53c5ee |
|00684bf8e9af13e4345297725d2804e6d04158dc |
|851c4b07ab9954651f20871ed5574673e65ebe95 |

当我运行查询来获取它时,它会返回错误。

我的查询是:

def cart_items(request, tocken):
    pay = Pay.objects.get(pay_tocken=tocken)
    return render(request, 'pay/pay_items.html', {'pay':pay})

和网址:

    from pay import views as pay_views
    url(r'^profile/product-items/(?P<tocken>\d+)/$', pay_views.cart_items, name="cart_items")

模板:

{% extends "store/base.html" %}
{% block content %}
  <div class="container">
     <div class="table-responsive">
       <table class="table table-striped text-center">
          <tr>
              <th>Tockens</th>
          </tr>
            {% for payment in payments %}
          <tr>
              <td><a href="{% url 'cart_items' tocken=payment.pay_tocken %}">Tocken</a></td>
          </tr>
          {% endfor %}
       </table>
    </div>
</div>
{% endblock content %}

当我运行它时,它会返回错误:

  

使用参数'()'和关键字参数'{u'tocken':u'dfgdf'}'找不到“cart_items”的反向

1 个答案:

答案 0 :(得分:2)

您使用的是字母数字tocken,但在网址格式中,您只能使用d+与数字匹配。将其更改为w+,它应该可以正常工作

url(r'^profile/product-items/(?P<tocken>\w+)/$', pay_views.cart_items, name="cart_items")