NoReverseMatch на / checkout / - Django Веб-сайт - PullRequest
1 голос
/ 18 апреля 2020

django .urls.exceptions.NoReverseMatch: обратное для 'update_cart' с аргументами '(' ',)' не найдено. Попробован 1 шаблон (ов): ['cart \ / (? P [^ /] +) $'] [18 / Apr / 2020 14:05:02] "GET / checkout / HTTP / 1.1" 500 157543 <--- это сообщение об ошибке, которое я получаю в терминале, когда пытаюсь go перейти на страницу оформления заказа. </p>

view. html

{% for item in cart.products.all %}

<tr><td> {{ item }} </td><td>{{item.price}}</td>

<td><a href='{% url "update_cart" item.slug %}'> Remove</a></td></tr>
{% endfor %}

</table>

<br/>

<a href='{% url "checkout" %}'>Checkout</a>

{% endif %}
</div>
</div>

{% endblock content %}

views.py для orders

from django.urls import reverse
from django.shortcuts import render, HttpResponseRedirect

# Create your views here.

from carts.models import Cart

def checkout(request):
    try:
        the_id = request.session['cart_id']
        cart = Cart.objects.get(id=the_id)

    except:
        the_id = None
        return HttpResponseRedirect(reverse("fuisce-home"))


    context = {}
    template = "fuisce/home.html"
    return render(request, template, context)

urls.py

from django.urls import path
from . import views
from carts import views as cart_views
from orders import views as order_views

urlpatterns = [
    path('cart/', cart_views.view, name='cart'),
    path('cart/<slug>', cart_views.update_cart, name='update_cart'),
    path('checkout/', order_views.checkout, name='checkout'),
]

Я не могу понять, где происходит проблема, так как она отлично работала до нескольких минут go. Будем весьма благодарны за любые решения!

обновление - проблема возникает, когда я перемещаю HttpResponse с чуть ниже проверки def, внизу cart = Cart.objects.get (id = the_ID). (изменение в коде прилагается ниже). Кто-нибудь знает, как позволить ему принять это изменение?

def checkout(request):
    return HttpResponseRedirect(reverse("fuisce-home"))
    try:
        the_id = request.session['cart_id']
        cart = Cart.objects.get(id=the_id)
except:
            the_id = None

def checkout(request):
    try:
        the_id = request.session['cart_id']
        cart = Cart.objects.get(id=the_id)

    except:
        the_id = None
        return HttpResponseRedirect(reverse("fuisce-home"))

1 Ответ

1 голос
/ 18 апреля 2020

Поле Slug отсутствует в поле зрения. html для URL-адреса оформления заказа

...