gpt4 book ai didi

python - NoReverseMatch 位于/产品/

转载 作者:太空宇宙 更新时间:2023-11-03 21:16:28 30 4
gpt4 key购买 nike

我正在尝试在网址之间进行路由。产品是一个类:

from django.db import models
from django.urls import reverse
# Create your models here.
class Product(models.Model):
title = models.TextField(max_length=20)
description = models.TextField(blank=True)
price = models.DecimalField(max_digits=20, decimal_places=2,
blank=True)
summery = models.TextField(blank=True)
feature = models.BooleanField(blank=True, null=True, default=True)

def get_absolute_url(self):
return reverse("product-detail", kwargs={"id": self.id})

其 View 如下:

def product_list_view(request):
queryset = Product.objects.all() # list of objects

context = {
"object_list": queryset
}
return render(request, "products/product_list.html", context)

html:

{% block content %}

{% for instance in object_list %}
<p>{{ instance.id }} - <a href="{{ instance.get_absolute_url }}">{{
instance.title }}</a></p>
{% endfor %}

{% endblock %}

网址:

urlpatterns = [
path('', product_list_view, name='list'),
path('create/', render_initial_data, name='product_create'),
path('<int:my_id>/', dynamic_lookup_view, name='product-detail'),
path('<int:my_id>/delete/', product_delete_view,
name='product_delete'),

]

这应该可以工作,但是当我运行服务器并尝试查看产品列表时,它会引发此错误:NoReverseMatch at/products/ 当我在对象列表的实例中使用此方法时。#reverse 函数出了什么问题?

最佳答案

def get_absolute_url(self):
return reverse("product-detail", kwargs={"id": self.id})

您已将 id 作为 url 参数,但在 url 配置中您已使用 my_id,因此请更改任何人并使用相同的名称

path('<int:my_id>/', dynamic_lookup_view, name='product-detail'),

关于python - NoReverseMatch 位于/产品/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54667063/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com