from django.db.models.signals import post_save from django.dispatch import receiver from apps.inm.models import FIFODetail, Inventory, MaterialBatch @receiver(post_save, sender=FIFODetail) def create_user(sender, instance, created, **kwargs): if created: fifo = instance.fifo material = instance.material warehouse = fifo.warehouse if fifo.type in [3]: # 采购入库 # 更新相关表 o1 = Inventory.objects.get_or_create(material=material, warehouse=warehouse, \ defaults={'material':material, 'warehouse':warehouse, 'count':0}) o1.count = o1.count + instance.count o1.save() o2 = MaterialBatch.objects.get_or_create(material=material, warehouse=warehouse, batch=instance.batch,\ defaults={'material':material, 'warehouse':warehouse, 'count':0, 'batch':instance.batch}) o2.save() material.count = material.count + 1 material.save()