首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoReverseMatch at /反向查找带有参数的“products”(‘’,)‘。试用1模式:['products/(?P<pk>[^/]+)/$']

NoReverseMatch at /反向查找带有参数的“products”(‘’,)‘。试用1模式:['products/(?P<pk>[^/]+)/$']
EN

Stack Overflow用户
提问于 2021-07-19 17:22:07
回答 2查看 748关注 0票数 0

我试过查看社区的其他解决方案,但没有提供任何帮助。

我只是试图将输入与数据库条目相匹配,从而在"products.html“页面中显示结果。

如果有人能解决这个问题,我将不胜感激。

views.py

代码语言:javascript
复制
from django.shortcuts import render, redirect
from .forms import ProductForm
from .models import Product

    def home(request):
        form = ProductForm()
        if request.method == "POST":
            form = ProductForm(request.POST)
            form.save()
            if form.is_valid():
                return redirect('/')
        context = {
            'form':form 
        }
        return render(request, 'bye/home.html', context)
    def products(request, pk):
        product = Product.objects.get(id = pk)
        if request.method == "POST":
            return redirect('/')
    
        context = {
            'product': product
        }
        return render(request, 'bye/products.html', context)

urls.py

代码语言:javascript
复制
from django.urls import path
from .  import views

    urlpatterns = [
        
        path('', views.home, name ='home'),
        path('products/<str:pk>/', views.products, name = 'products')
    ]

home.html

代码语言:javascript
复制
</div>
    <div class = "col-md-12"><a href = "{% url 'products' product.id %}" class="btn btn-info btn-sm">Submit</a></div>
</div>

products.html

代码语言:javascript
复制
{% extends 'bye/base.html' %}

{% block content %}
<p></p>
{{product.name}}
{% endblock %}

溯源

代码语言:javascript
复制
Traceback (most recent call last):
  File "D:\DJPROJ\try\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "D:\DJPROJ\try\env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\DJPROJ\try\okay\bye\views.py", line 17, in home
    return render(request, 'bye/home.html', context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 170, in render
    return self._render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 162, in _render
    return self.nodelist.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 938, in render
    bit = node.render_annotated(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\base.py", line 905, in render_annotated
    return self.render(context)
  File "D:\DJPROJ\try\env\lib\site-packages\django\template\defaulttags.py", line 446, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "D:\DJPROJ\try\env\lib\site-packages\django\urls\base.py", line 86, in reverse
    return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
  File "D:\DJPROJ\try\env\lib\site-packages\django\urls\resolvers.py", line 694, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'products' with arguments '('',)' not found. 1 pattern(s) tried: ['products/(?P<pk>[^/]+)/$']
[19/Jul/2021 23:10:45] "GET / HTTP/1.1" 500 155526

我不知道窃听器在哪里,为什么。

EN

回答 2

Stack Overflow用户

发布于 2021-07-23 23:21:51

试试这个:

代码语言:javascript
复制
#views.py
def products(request, **kwargs):
    pk = kwargs.get("pk")
    product = Product.objects.filter(id = pk)
    if product.exists():
        return redirect('/')

    context = {
        'product': product
    }
    return render(request, 'bye/products.html', context)
票数 0
EN

Stack Overflow用户

发布于 2021-07-24 07:17:17

在下面的代码中,我得到了与<a href = "{% url 'products' '' %}" class="btn btn-info btn-sm">Submit</a>相同的错误消息。我的意思是product.id的值是空的。

选项1

urls.py

代码语言:javascript
复制
from django.urls import path,re_path
re_path(r'^products/(?P<pk>.*)/$', products, name='products'),

您可以使用以下任何一个模板url,

  1. <a href = "{% url 'products','' %}" class="btn btn-info btn-sm">Submit</a>
  2. <a href = "{% url 'products' 1 %}" class="btn btn-info btn-sm">Submit</a> #replace 1 with product.id

选项2

urls.py

代码语言:javascript
复制
path('products/<str:pk>/', products,name='products'),
path('products/', products, name='products'),

您可以使用以下任何一个模板url,

  1. <a href = "{% url 'products' %}" class="btn btn-info btn-sm">Submit</a>
  2. <a href = "{% url 'products' 1 %}" class="btn btn-info btn-sm">Submit</a> #replace 1 with product.id

Views.py

代码语言:javascript
复制
def products(request, pk=None):
    #Do the remaining code here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68444603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档