在/ add-to-cart / 1 /处发生TypeError

问题描述

我的添加到购物车运行正常,当我稍后重试几页时,它给了我这个错误 / add-to-cart / 1 /处的TypeError add_to_cart()缺少1个必需的位置参数:“ request”

My view:
def add_to_cart(LoginrequiredMixin,request,slug):
    item = get_object_or_404(Item,slug=slug)
    order_item,created = OrderItem.objects.get_or_create(
        item=item,user=request.user,ordered=False
    )
    order_qs = Order.objects.filter(user=request.user,ordered=False)
    if order_qs.exists():
        order = order_qs[0]
        # check if the order item is in the order
        if order.items.filter(item__slug=item.slug).exists():
            order_item.quantity += 1
            order_item.save()
            messages.info(request,"This item quantity was updated.")
            return redirect("core:order-summary")
        else:
            order.items.add(order_item)
            messages.info(request,"This item was added to your cart.")
            return redirect("core:order-summary")
    else:
        ordered_date = timezone.Now()
        order = Order.objects.create(
            user=request.user,ordered_date=ordered_date)
        order.items.add(order_item)
        messages.info(request,"This item was added to your cart.")
        return redirect("core:order-summary")

  

my url:
urlpatterns = [
    path('add-to-cart/<slug>/',add_to_cart,name='add_to_cart'),]


Not sure what went wrong,help please.

解决方法

您不能使用LoginRequiredMixin mixin [Django-doc]作为参数,这是一个函数,而不是一个类。 appendData(data.filter(x => x.institution == "Fiscal targets and rules")); class 方法解析顺序(MRO)混合。您可以在函数上使用@login_required decorator [Django-doc]

Mixin

您还可以限制from django.contrib.auth.decorators import login_required @login_required def add_to_cart(request,slug): # …参数,使其仅在具有以下条件的有效段上匹配:

slug