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): # if created: # 如果账号所属部门有变动, 更新关联人员的所属部门, 只限内部人员 if not instance.is_superuser and instance.type == 'employee': ep = Employee.objects.filter(user=instance).first() if ep: ep.belong_dept = instance.belong_dept ep.post = instance.post ep.save() else: Employee.objects.get_or_create(user=instance, defaults={ "user": instance, "name": instance.name, "phone": instance.phone, "belong_dept": instance.belong_dept, "post": instance.post })