Guest User

Untitled

a guest
Jul 15th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. class BargainItem(models.Model):
  2. product = models.ForeignKey(Item)
  3. bargain = models.ForeignKey(Bargain)
  4. quantity = models.IntegerField()
  5.  
  6. class Bargain(models.Model):
  7. name = models.CharField(max_length=50, unique=True)
  8. discount_price = models.DecimalField(decimal_places=2)
  9. total_price = models.DecimalField(decimal_places=2, editable=False, default=Decimal(0))
  10.  
  11. class Item(models.Model):
  12. name = models.CharField(max_length=50)
  13. price = models.DecimalField(decimal_places=2)
  14.  
  15. class BargainItemInline(admin.TabularInline):
  16. model = BargainItem
  17. extra = 1
  18.  
  19. class BargainAdmin(admin.ModelAdmin):
  20. model = Bargain
  21. # ...
  22. inlines = (BargainItemInline,)
  23.  
  24. def save_formset(self, request, form, formset, change):
  25. instances = formset.save(commit=False)
  26. for instance in instances:
  27. if isinstance(instance, Bargain):
  28. # ...
  29. instance.save()
  30.  
  31. def save_formset(self, request, form, formset, change):
  32. #instances = formset.save(commit=False)
  33. #bargain_id = 0
  34. total_price = Decimal(0)
  35. print("Formset: ", formset)
  36. instances = formset.save(commit=False)
  37. print("Instances: ", instances)
  38. bargain_id = 0
  39.  
  40. for instance in iter(instances):
  41. if isinstance(instance, BargainProduct):
  42. total_price += instance.quantity * instance.product.price
  43. bargain_id = instance.id
  44. instance.save()
  45. updateTotal = Bargain.objects.get(id=bargain_id)
  46. updateTotal.total_price = total_price - updateTotal.discount_price
  47. updateTotal.save()
Add Comment
Please, Sign In to add comment