У меня есть проект с курсами, и я попытался добавить к этому платежную систему, сделал все для этого, и когда я добавляю в корзину более одного курса (не имеет значения тот же курс или нет), я получаю эту ошибку () вернул более одного ордера - вернул 2! Это действительно странно, потому что я делал эту систему в предыдущих проектах, и все работало, но теперь я это понимаю. Может быть, проблема в том, что я создал пользовательского пользователя и сделал два типа пользователей, но я не уверен в этом, а также я попытался изменить соединение между преподавателем и студентами (курсом) с внешнего ключа на одно-одно поле, но там я получаю много другие ошибки, а также в представлении корзины изменились, попали в фильтр, и ошибка исчезла, но я не видел заказов в корзине. Как исправить эту ошибку?
модели
class Course(models.Model):
title = models.CharField(max_length=255)
tutor = models.ForeignKey(User,related_name='tutor_courses',on_delete=models.CASCADE)
students = models.ForeignKey(User,related_name='course_students',blank=True,null=True,on_delete=models.CASCADE)
class Order(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
courses = models.ManyToManyField(OrderCourse)
ordered = models.BooleanField(default=False)
class OrderCourse(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
ordered = models.BooleanField(default=False)
course = models.ForeignKey(Course,on_delete=models.CASCADE)
просмотров
def add_to_cart(request,pk):
course = get_object_or_404(Course,pk=pk)
order_course,created = OrderCourse.objects.get_or_create(
course=course,
user=request.user,
ordered = False,
)
ordered_date = timezone.now()
order = Order.objects.create(user=request.user,ordered_date=ordered_date)
order.courses.add(order_course)
messages.info(request,"This course was added to your cart.")
return redirect("courses:cart")
class CartView(LoginRequiredMixin,View):
def get(self,*args,**kwargs):
try:
order = Order.objects.get(user=self.request.user,ordered=False)
context = {
'object':order
}
return render(self.request,'courses/cart.html',context)
except ObjectDoesNotExist:
messages.error(self.request,"You do not have an active order")
return redirect("/")