【发布时间】:2019-04-09 05:39:03
【问题描述】:
无法理解问题。这是我的模型和 urls 文件。
models.py
class Order(models.Model):
order_id = models.CharField(max_length=120, blank=True)
active = models.BooleanField(default=True)
objects = OrderManager()
def __str__(self):
return self.order_id
def get_absolute_url(self):
return reverse('order_detail', kwargs={'order_id': self.order_id})
urls.py
from django.urls import path
from .views import (OrderListView, OrderDetailView)
urlpatterns = [
path('order/list/', OrderListView.as_view(), name='order_list'),
path('order/<int:order_id>/', OrderDetailView.as_view(), name='order_detail'),
]
模板.html
{% for order in order_list %}
<tr>
<th scope="row">{{ forloop.counter }}</th>
<td><a href="{{ order.get_absolute_url }}">{{ order.order_id }}</a></td>
</tr>
{% endfor %}
错误
NoReverseMatch at /order/list/ 使用关键字反转'order_detail' 未找到参数'{'order_id': 'JUQEDJA6QQ'}'。尝试了 1 种模式: ['顺序\/(?P[0-9]+)\/$']
【问题讨论】:
-
order_id是JUQEDJA6QQ,但您的 URL 只允许int作为order_id。
标签: django django-models