问题描述
我正在尝试开发一个电子通讯网站。父母为孩子们买东西的地方。父母将孩子添加到他/她的个人资料中:
class Kid(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
first_name = models.CharField(max_length=120)
slug = slug = models.SlugField(unique=True)
last_name = models.CharField(max_length=120)
province = models.CharField(choices=PROVINCE_CHOICES,max_length=2,default='AB')
city = models.CharField(max_length=120)
school = models.CharField(max_length=120)
grade = models.CharField(max_length=120)
teacher = models.CharField(max_length=120)
此外,我有一个OrderItem和Order类,它们来自一个教程,并且可以正常工作。我已经将孩子对象添加到OrderItem,也许我也需要将其添加到Order。
class OrderItem(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
kid = models.ForeignKey(Kid,on_delete=models.CASCADE)
ordered = models.BooleanField(default=False)
item = models.ForeignKey(MenuItem,on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
def __str__(self):
return f'{self.quantity} of {self.item.title}'
class Order(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE)
items = models.ManyToManyField(OrderItem)
order_date = models.DateTimeField(auto_now_add=True)
event_date = models.DateTimeField()
ordered = models.BooleanField(default=False)
在视图中,我有一个定义 add_to_cart :
def add_to_cart(request,slug):
item = get_object_or_404(MenuItem,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]
if order.items.filter(item__slug=item.slug).exists():
order_item.quantity +=1
order_item.save()
messages.info(request,"Quantity of " + item.title + " was updated.")
return redirect('/menu/')
else:
order.items.add(order_item)
messages.info(request,item.title +" was added to your cart.")
return redirect('/menu/')
else:
event_date = timezone.now()
order = Order.objects.create(
user=request.user,event_date=event_date
)
order.items.add(order_item)
messages.info(request,item.title +" was added to your cart.")
return redirect('/menu/')
我认为我需要在以下位置添加孩子对象:
order_item,**kid=???
ordered=False
)
但不知道如何。 如果我的孩子页面上有一个发出订单按钮,它会打开一个东西列表,那会很好。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)