1. Python / Говнокод #25508

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    Change(models.model):
    
        def save(self, *args, **kwargs):
            is_need_to_add = False
    
            if not self.pk and self.package.type not in [Billing.TYPE_H, Billing.TYPE_F]:
                is_need_to_add = True
    
            super(Change, self).save(*args, **kwargs)
    
            if is_need_to_add:
                package = self.package
                package.done += self.delta
                if self.package.status == Billing.STATUS_IN_WORK and package.count_done >= package.count_wants:
                    package.status = Billing.STATUS_DONE
                    package.save()
    
                    title, id = self.package.company.title, self.package.company.id
                    leads, price = self.package.count_wants, self.package.price
                    mail.send("trololo")
    
                package.save()
                package.check_billing()

    Django ORM, внутри метода save() сразу и сохранение сущности в базу, и апдейт родительской сущности и mail нотификация менеджерам.

    Запостил: facepalm, 04 Апреля 2019

    Комментарии (14) RSS

    Добавить комментарий