问题描述
我的添加到购物车运行正常,当我稍后重试几页时,它给了我这个错误 / 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