26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
| 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
 | |
|                                            })
 |