【问题标题】:NoReverseMatch at / Reverse for 'single_product' with no arguments not found. 1 pattern(s) tried: ['products/(?P<slug>)/$']NoReverseMatch at / Reverse for 'single_product' 未找到任何参数。尝试了 1 种模式:['products/(?P<slug>)/$']
【发布时间】:2019-11-01 21:04:46
【问题描述】:

我在使用 django 2.2 时遇到了这个错误,这是我的代码

urls.py

​​>

app_name = '产品'

urlpatterns = [
    url(r'^$', product_list, name='product-list'),
    url(r'^(?P<slug>.*)/$',single, name="single_product"),
    url(r'^category/(?P<slug>.*)/$',category_single,name="category")
]

产品模型中的views.py

​​>
def get_absolute_url(self,):
        return HttpResponseRedirect(reverse('single_product',args=[self.slug]))

模板

<h3>{{ product }}</h3>
<p>{{ product.description }}</p>
<p>{{ product.get_price }}</p>
<p>
   <a href ="{% url 'products:single_product' %}" class = "btn btn-primary" role = "button">
      View Product
   </a>

【问题讨论】:

  • 您的超链接必须在模板中发送一个参数到“products:single_product”。

标签: python html django django-urls


【解决方案1】:

您没有在 url 中传递 slug,而是为您的模式提供了一个参数。

所以修改html

<a href ="{% url 'products:single_product' product.slug %}" class = "btn btn-primary" role = "button">
      View Product
   </a>

【讨论】:

    猜你喜欢
    • 2019-04-17
    • 2020-10-14
    • 2019-11-26
    • 1970-01-01
    • 2020-07-20
    • 2021-01-13
    • 2018-11-25
    • 1970-01-01
    • 2022-07-04
    相关资源
    最近更新 更多