سلام
وقتی که این کوئری مقدار None برمیگردونه:
cart = Cart.objects.filter(owner_id=request.user.id, is_paid=False).first()
مساوی اینه که این کوئری یک کوئری ست خالی برگردونه:
cart = Cart.objects.filter(owner_id=request.user.id, is_paid=False)
پس هر موقع کوئری اول None میشه وارد if بعدی میشیم و این حالت پیش میاد:
cart = <QuerySet []>
که یک object از مدل Cart نیست و نمیشه از cart.cartdetailset استفاده کرد.
یک راه حل این میتونه باشه:
if cart is None:
cart = Cart.objects.create(owner_id=request.user.id, is_paid=False)
بهتر نیست از get به جای filter استفاده کنید؟
چون شما میخواید اون آبجکتی که کاربر گفته رو بگیرید نه اینکه با اون اطلاعاتی که کاربر گفته فیلتر کنید
چنین اتریبیوتی نداری.
مشکل از مدل هات و فارنکی هایی ک زدی هست (ForeignKey)
احتمالا related_name رو اشتباه تنظیم کردی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟