TypeError at /add-to-cart/1/



我的添加到购物车工作正常,当我稍后重试几页时,它给了我错误TypeError at/add to cart/1/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.

不能使用LoginRequiredMixinmixin[Django-doc]作为参数,这是一个函数,而不是类。Mixin方法分辨率顺序(MRO(混合。您可以在函数上使用@login_requireddecorator[Django-doc]:

from django.contrib.auth.decorators importlogin_required
@login_required
def add_to_cart(request, slug):
# …

您还可以将slug参数限制为仅在具有以下的有效段塞上匹配

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

相关内容

最新更新