userpost 增加约束
This commit is contained in:
parent
238310208f
commit
d00fe8f16d
|
@ -0,0 +1,25 @@
|
|||
# Generated by Django 3.2.12 on 2022-06-24 05:27
|
||||
|
||||
import apps.system.models
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0002_alter_dictionary_value'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelManagers(
|
||||
name='user',
|
||||
managers=[
|
||||
('objects', apps.system.models.SoftDeletableUserManager()),
|
||||
],
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='phone',
|
||||
field=models.CharField(blank=True, max_length=11, null=True, unique=True, verbose_name='手机号'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,17 @@
|
|||
# Generated by Django 3.2.12 on 2022-06-24 05:32
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0003_auto_20220624_1327'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='userpost',
|
||||
unique_together={('user', 'post', 'dept')},
|
||||
),
|
||||
]
|
|
@ -122,7 +122,7 @@ class User(AbstractUser, CommonBModel):
|
|||
"""
|
||||
type = models.CharField('账号类型', max_length=10, default='employee')
|
||||
name = models.CharField('姓名', max_length=20, null=True, blank=True)
|
||||
phone = models.CharField('手机号', max_length=11, null=True, blank=True)
|
||||
phone = models.CharField('手机号', max_length=11, null=True, blank=True, unique=True)
|
||||
avatar = models.CharField(
|
||||
'头像', default='/media/default/avatar.png', max_length=100, null=True, blank=True)
|
||||
superior = models.ForeignKey(
|
||||
|
@ -156,6 +156,7 @@ class UserPost(BaseModel):
|
|||
verbose_name = '用户岗位关系表'
|
||||
verbose_name_plural = verbose_name
|
||||
ordering = ['sort', 'create_time']
|
||||
unique_together = ('user', 'post', 'dept')
|
||||
|
||||
|
||||
class DictType(CommonAModel):
|
||||
|
|
|
@ -128,6 +128,7 @@ class DictSerializer(CustomModelSerializer):
|
|||
model = Dictionary
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class DictSimpleSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = Dictionary
|
||||
|
@ -369,6 +370,9 @@ class UserPostCreateSerializer(CustomModelSerializer):
|
|||
model = UserPost
|
||||
exclude = EXCLUDE_FIELDS_BASE
|
||||
|
||||
def create(self, validated_data):
|
||||
return super().create(validated_data)
|
||||
|
||||
|
||||
class PostRoleSerializer(CustomModelSerializer):
|
||||
"""
|
||||
|
@ -390,6 +394,7 @@ class PostRoleCreateSerializer(CustomModelSerializer):
|
|||
model = PostRole
|
||||
fields = ['post', 'role', 'data_range']
|
||||
|
||||
|
||||
class UserInfoSerializer(CustomModelSerializer):
|
||||
posts_ = UserPostSerializer(source='post', read_only=True)
|
||||
|
||||
|
|
|
@ -351,24 +351,26 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo
|
|||
filterset_fields = ['user', 'post', 'dept']
|
||||
|
||||
def perform_create(self, serializer):
|
||||
instance = serializer.save()
|
||||
user = instance.user
|
||||
up = UserPost.objects.filter(user=user).order_by('sort', 'create_time').first()
|
||||
if up:
|
||||
user.belong_dept = up.dept
|
||||
user.update_by = self.request.user
|
||||
user.save()
|
||||
with transaction.atomic():
|
||||
instance = serializer.save()
|
||||
user = instance.user
|
||||
up = UserPost.objects.filter(user=user).order_by('sort', 'create_time').first()
|
||||
if up:
|
||||
user.belong_dept = up.dept
|
||||
user.update_by = self.request.user
|
||||
user.save()
|
||||
|
||||
def perform_destroy(self, instance):
|
||||
user = instance.user
|
||||
instance.delete()
|
||||
up = UserPost.objects.filter(user=user).order_by('sort', 'create_time').first()
|
||||
if up:
|
||||
user.belong_dept = up.dept
|
||||
else:
|
||||
user.belong_dept = None
|
||||
user.update_by = self.request.user
|
||||
user.save()
|
||||
with transaction.atomic():
|
||||
user = instance.user
|
||||
instance.delete()
|
||||
up = UserPost.objects.filter(user=user).order_by('sort', 'create_time').first()
|
||||
if up:
|
||||
user.belong_dept = up.dept
|
||||
else:
|
||||
user.belong_dept = None
|
||||
user.update_by = self.request.user
|
||||
user.save()
|
||||
|
||||
|
||||
class UserViewSet(CustomModelViewSet):
|
||||
|
|
Loading…
Reference in New Issue