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

Django - how to set regex when querying string

我在数据库中有这样的字符串:

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

当我运行一个查询得到它时,它returns一个错误。

我的查询是:

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

和url:

    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 %}

当我运行它时,它returns一个错误:

Reverse for 'cart_items' with arguments '()' and keyword arguments '{u'tocken': u'dfgdf'}' not found

您使用的是字母数字 tocken,但在 url 模式中,您仅使用 d+ 匹配数字。将其更改为 w+,它应该可以工作

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