From f4aa223135d9e7b9805af915d37a58c5476f077f Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Thu, 21 Dec 2017 23:06:09 +0100 Subject: [PATCH] add an intermediate class between order and article Because we need additional fields in an order it's necessary to add an additional class where the information gets stored. --- django/didgeridoo/webshop/models.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/django/didgeridoo/webshop/models.py b/django/didgeridoo/webshop/models.py index 6c87815..b2bfa91 100644 --- a/django/didgeridoo/webshop/models.py +++ b/django/didgeridoo/webshop/models.py @@ -94,11 +94,21 @@ class Picture(models.Model): class Order(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) - article = models.ManyToManyField(Article) - order_status = models.ForeignKey(OrderStatus) + article = models.ManyToManyField(Article, through='OrderPosition') + status = models.ForeignKey(OrderStatus) date = models.DateTimeField(default=datetime.datetime.now()) +class OrderPosition(models.Model): + article = models.ForeignKey(Article, on_delete=models.CASCADE) + order = models.ForeignKey(Order, on_delete=models.CASCADE) + amount = models.FloatField(max_length=5) + price_in_chf = models.DecimalField(max_digits=19, + decimal_places=2, + validators=[MinValueValidator( + Decimal('0.00'))]) + + class ShoppingCart(models.Model): name = models.CharField(max_length=200) user = models.ForeignKey(User, on_delete=models.CASCADE)