from django.db.models.signals import post_save from apps.system.models import User from django.dispatch import receiver from apps.hrm.models import Employee @receiver(post_save, sender=User) def updateEmployee(sender, instance, created, **kwargs): ep = None ep_created = False if created: ep, ep_created = Employee.objects.get_or_create(user=instance, defaults={ "user": instance, "name": instance.name, "phone": instance.phone, "belong_dept": instance.belong_dept, "post": instance.post, "type": instance.type }) if ep and not ep_created: ep.belong_dept = instance.belong_dept ep.post = instance.post ep.type = instance.type if instance.phone != ep.phone: ep.phone = instance.phone ep.save() ep.save()