未找到参数为 '('',)' 的 'create-ordercontent' 反转尝试了 1 个模式:['store/create\\-ordercontent/(?P<order_id>[^/]+)$']

如何解决未找到参数为 '('',)' 的 'create-ordercontent' 反转尝试了 1 个模式:['store/create\\-ordercontent/(?P<order_id>[^/]+)$']

我是 Django 的新手。我正在尝试将 id 从第一个网址传递到第二个网址。

未找到参数为 '('',)' 的 'create-ordercontent' 反转。尝试了 1 个模式:['store/create\-ordercontent/(?P[^/]+)$']

urls.py

path('list-ordercontent/<order_id>',OrdercontentListView.as_view(),name='list-ordercontent'),path('create-ordercontent/<order_id>',create_ordercontent,name='create-ordercontent'),

view.py

class OrdercontentListView(ListView):
    model = Ordercontent
    template_name = 'store/list_ordercontent.html'
    context_object_name = 'ordercontent'

    def get_queryset(self):
        model = Ordercontent
        order = self.request.resolver_match.kwargs['order_id']
        return model.objects.filter(order=order)

在 list-ordercontent.html 中,我尝试使用相同的 order_id 来传递我想要的变量,但它不正确。我想知道如何将 order_id 用于另一个 url,在我的程序中它是用于创建的 url。

<div class="breadcrumbs">
<div class="breadcrumbs-inner">
    <div class="row m-0">
        <div class="col-sm-4">
            <div class="page-header float-left">
                <div class="page-title">
                    <h1>Dashboard</h1>
                </div>
            </div>
        </div>
        <div class="col-sm-8">
            <div class="page-header float-right">
                <div class="page-title">
                    <ol class="breadcrumb text-right">
                        <li><a href="#">Dashboard</a></li>
                        <li><a href="#">Order</a></li>
                        <li class="active">
                            <a>{{ ordercontent.order.id }}</a>
                            <a>Content</a>
                        </li>
                    </ol>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="row">
<div class="col-xl-12">
    <div class="card">
        <div class="card-body">
            <div class="Box-title float-left">
                <h4>Order Content</h4>
            </div>
            <div class="Box-title float-right">
                <a href="{% url 'create-ordercontent' order_id %}">Add Product</a>
            </div>
        </div>
        <div class="card-body--">
            <div class="table-stats order-table ov-h">
                <table class="table ">
                    <thead>
                        <tr>
                            <th class="serial">#</th>
                            <th>Name</th>
                            <th>Type</th>
                            <th>supplier</th>
                            <th>Amount</th>
                            <th>Action</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% if ordercontent %}
                        {% for ordercontent in ordercontent %}
                        <tr>
                            <td class="serial">{{ ordercontent.order.id }}</td>
                            <td>{{ ordercontent.product.name }}</td>
                            <td>{{ ordercontent.product.ptype }}</td>
                            <td>{{ ordercontent.product.supplier }}</td>
                            <td>{{ ordercontent.amount }}</td>
                        </tr>
                        {% endfor %}
                        {% else %}
                            <tr><td>No Content</td></tr>
                        {% endif %}
                    </tbody>
                </table>
            </div> <!-- /.table-stats -->
        </div>
    </div> <!-- /.card -->
</div>  <!-- /.col-lg-8 -->

解决方法

ListView 不会将视图收到的关键字参数添加到上下文中,如果您希望它们在上下文中,您应该通过覆盖 get_context_data 自己添加它们:

class OrdercontentListView(ListView):
    model = Ordercontent
    template_name = 'store/list_ordercontent.html'
    context_object_name = 'ordercontent'

    def get_queryset(self):
        model = Ordercontent
        order = self.kwargs['order_id'] # No need to access `request.resolver_match.kwargs` they are present in `self.kwargs`
        return model.objects.filter(order=order)
    
    def get_context_data(self,**kwargs):
        context = super().get_context_data(**kwargs)
        context['order_id'] = self.kwargs['order_id']
        return context

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?