Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Product(models.Model):
- name = models.CharField(max_length=50)
- price = models.PositiveIntegerField(default=1)
- def __str__(self):
- return self.name
- class Order(models.Model):
- id = models.AutoField(primary_key = True)
- products = models.ManyToManyField(Product ,through='ProductOrder')
- @property
- def total(self):
- return self.productorder_set.aggregate(
- price_sum=Sum(F('quantity') * F('product__price'),
- output_field=IntegerField()) )['price_sum']
- class ProductOrder(models.Model):
- product = models.ForeignKey(Product, on_delete=models.CASCADE ,
- null=True,blank=True)
- ordering = models.ForeignKey(Order, on_delete=models.CASCADE ,
- blank=True)
- quantity = models.IntegerField(default=1)
- #to make a new instance from order,but doesnt make! before saving
- ProductOrder
- def create_order(sender, instance, **kwargs):
- instance.ordering.save()
- pre_save.connect(create_order,sender=ProductOrder)
- class ProductOrdering(forms.ModelForm):
- class Meta:
- model = ProductOrder
- fields = ['product','ordering','quantity']
- class ProductOrderCreate(CreateView):
- form_class = ProductOrdering
- model = ProductOrder
- template_name = 'create_product_order.html'
- success_url = '/orders/'
- def form_valid(self,form):
- form.instance.ordering = Order.objects.order_by('-pk')[0]
- return super(ProductOrderCreate,self).form_valid(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement