Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # The Models
- class Product(models.Model):
- name = models.CharField(null=True, max_length=30, )
- price = models.IntegerField(default=0)
- description = models.CharField(null=True, max_length=100, )
- class Order(models.Model):
- date = models.DateTimeField(auto_now_add=True, null=True)
- table = models.IntegerField(null=False, max_length=2, )
- waiter = models.ForeignKey(User, null=True,default=None)
- products = models.ManyToManyField(Product,through='OrderProduct')
- paid = models.BooleanField(default=False)
- total = models.IntegerField(default=0,editable=False,null=True)
- @cached_property
- def total(self):
- x = 0
- for product in self.products.all():
- relationship_queryset = OrderProduct.objects.filter(order=self, product=product)
- for p in relationship_queryset.all():
- x += p.total_products
- return x
- class OrderProduct(models.Model):
- order = models.ForeignKey(Order)
- product = models.ForeignKey(Product)
- products_quantity = models.IntegerField(max_length=2)
- products_total = models.IntegerField(default=0,editable=False)
- def save(self, *args, **kwargs):
- self.products_total = (self.product.price * self.products_quantity)
- super(OrderProduct, self).save(*args, **kwargs)
- # the view
- def sales(request):
- today = datetime.utcnow()
- today_sales = m.Order.objects.filter(date=today).all()
- return render_to_response('pages/sales.html',{'request':request,'sales':today_sales})
- # the template
- {% for sale in sales %}
- <ul>{{ sale.date }}|{{ sale.paid }}|{{ sale.total }}</ul>
- !! Here i wanna put the products from the current sale !!
- {% for product in sales.products %}
- {{ product.name }}|{{ product.price }}|{{ product.products_quantity }}|{{ product.products_total }}
- {% endfor %}
- {% endfor %}
Advertisement
Add Comment
Please, Sign In to add comment