【问题标题】:Unable to resolve Reverse for 'create_order' with no arguments not found无法解决“create_order”的反向问题,未找到任何参数
【发布时间】:2020-09-14 18:57:35
【问题描述】:

这里已经讨论过这个问题...

Reverse for 'create_order' with no arguments not found

i get an error. django.urls.exceptions.NoReverseMatch

但是没有提到如何解决这个问题。有人可以帮忙吗?

这是我遇到错误的代码..

dashboard.html

<div class="col-md-7">
    <h5>LAST 5 ORDERS</h5>
    <hr>
    <div class="card card-body">
        <a class="btn btn-primary  btn-sm btn-block" href="{% url 'create_order' customer.id %}">Create Order</a>
        <table class="table table-sm">
            <tr>
                <th>Product</th>
                <th>Date Orderd</th>
                <th>Status</th>
                <th>Update</th>
                <th>Remove</th>
            </tr>

        {% for order in orders %}
            <tr>
                <td>{{order.product}}</td>
                <td>{{order.date_created}}</td>
                <td>{{order.status}}</td>
                <td><a class="btn btn-sm btn-info" href="{% url 'update_order' order.id %}">Update</a></td>

                <td><a class="btn btn-sm btn-danger" href="{% url 'delete_order' order.id %}">Delete</a></td>

            </tr>
        {% endfor %}


    </table>
</div>

// 当我删除链接href(即创建订单)时,URL 工作正常 对应视图

def createOrder(request, pk):
#def createOrder(request):
    OrderFormSet = inlineformset_factory(Customer, Order, fields=('product', 'status'), extra = 10 )
    customer = Customer.objects.get(id=pk)

    formset = OrderFormSet(queryset=Order.objects.none(),instance=customer)

    if request.method == 'POST':
       #form = OrderForm(request.POST)
       formset = OrderFormSet(request.POST,instance=customer)
       if formset.is_valid():
          formset.save()
          return redirect('/')

    context = {'formset':formset}
    return render(request, 'accounts/order_form.html', context)

有人告诉创建订单按钮被评论了,但没有。

这是我得到的异常的一部分

跟踪错误

Internal Server Error: /
Traceback (most recent call last):
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\contrib\auth\decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "C:\Users\s5114509\PycharmProjects\Demo\crm\accounts\decorators.py", line 38, in wrapper_function
    return view_func(request,*args,**kwargs)
  File "C:\Users\s5114509\PycharmProjects\Demo\crm\accounts\views.py", line 70, in home
    return render(request, 'accounts/dashboard.html', context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\backends\django.py", line 61, in render
    return self.template.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 171, in render
    return self._render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 163, in _render
    return self.nodelist.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 936, in render
    bit = node.render_annotated(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 903, in render_annotated
    return self.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 163, in _render
    return self.nodelist.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 936, in render
    bit = node.render_annotated(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 903, in render_annotated
    return self.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 936, in render
    bit = node.render_annotated(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py", line 903, in render_annotated
    return self.render(context)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\defaulttags.py", line 443, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "C:\Users\s5114509\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\resolvers.py", line 677, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'create_order' with arguments '('',)' not found. 1 pattern(s) tried: ['create_order/(?P<pk>[^/]+)/$']
[14/Sep/2020 14:50:07] "GET / HTTP/1.1" 500 181933

【问题讨论】:

    标签: django


    【解决方案1】:

    我能够得到上述问题的答案。实际问题是

    <a class="btn btn-primary  btn-sm btn-block" href="{% url 'create_order' customer.id %}">Create Order</a>
    

    这里 customer.id 的值是空白的,它需要参数。创建订单 1

    所以当我调试问题时我能够解决 .. 所以我只是用 .. 替换了相同的语句(需要为所有客户添加更多逻辑)

    <a class="btn btn-primary  btn-sm btn-block" href= "{% url 'create_order' customers.first.id %}">Create Order</a>
    

    查询第一个客户

    谢谢

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 1970-01-01
      • 2021-11-30
      • 2019-04-08
      • 1970-01-01
      • 2017-11-09
      • 2021-02-03
      • 2018-05-02
      • 2022-01-23
      相关资源
      最近更新 更多