rparty返回admin, dept
This commit is contained in:
parent
2b04df341d
commit
97b657f4b4
|
@ -37,6 +37,9 @@ class RpartyCreateUpdateSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
|
|
||||||
class RpartySerializer(CustomModelSerializer):
|
class RpartySerializer(CustomModelSerializer):
|
||||||
|
admin_username = serializers.CharField(source='admin.username', read_only=True)
|
||||||
|
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Rparty
|
model = Rparty
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -138,9 +141,14 @@ class RpjmemberCreateSerializer(CustomModelSerializer):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
ins = super().create(validated_data)
|
ins = super().create(validated_data)
|
||||||
for x in rcertificates:
|
for x in rcertificates:
|
||||||
rpjc, _ = Rpjcertificate.objects.get_or_create(rpj_member=ins, rcertificate=x,
|
rpjc = Rpjcertificate.objects.filter(rpj_member=ins, rcertificate=x).first()
|
||||||
defaults={'rpj_member': ins, 'rcertificate': x})
|
if rpjc:
|
||||||
for f in Rcertificate._meta.fields:
|
pass
|
||||||
|
else:
|
||||||
|
rpjc = Rpjcertificate()
|
||||||
|
rpjc.rpj_member = ins
|
||||||
|
rpjc.rcertificate = x
|
||||||
|
for f in Rpjcertificate._meta.fields:
|
||||||
if f.name not in ['id']:
|
if f.name not in ['id']:
|
||||||
setattr(rpjc, f.name, getattr(x, f.name, None))
|
setattr(rpjc, f.name, getattr(x, f.name, None))
|
||||||
rpjc.save()
|
rpjc.save()
|
||||||
|
@ -162,15 +170,20 @@ class RpjmemberUpdateSerializer(CustomModelSerializer):
|
||||||
raise ParseError('成员非创建状态不可修改')
|
raise ParseError('成员非创建状态不可修改')
|
||||||
rcertificates = validated_data.pop('rcertificates')
|
rcertificates = validated_data.pop('rcertificates')
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
instance = super().update(instance, validated_data)
|
ins = super().update(instance, validated_data)
|
||||||
for x in rcertificates:
|
for x in rcertificates:
|
||||||
rpjc, _ = Rpjcertificate.objects.get_or_create(rpj_member=instance, rcertificate=x,
|
rpjc = Rpjcertificate.objects.filter(rpj_member=ins, rcertificate=x).first()
|
||||||
defaults={'rpj_member': instance, 'rcertificate': x})
|
if rpjc:
|
||||||
for f in Rcertificate._meta.fields:
|
pass
|
||||||
|
else:
|
||||||
|
rpjc = Rpjcertificate()
|
||||||
|
rpjc.rpj_member = ins
|
||||||
|
rpjc.rcertificate = x
|
||||||
|
for f in Rpjcertificate._meta.fields:
|
||||||
if f.name not in ['id']:
|
if f.name not in ['id']:
|
||||||
setattr(rpjc, f.name, getattr(x, f.name, None))
|
setattr(rpjc, f.name, getattr(x, f.name, None))
|
||||||
rpjc.save()
|
rpjc.save()
|
||||||
return instance
|
return ins
|
||||||
|
|
||||||
|
|
||||||
class RpjmemberSerializer(CustomModelSerializer):
|
class RpjmemberSerializer(CustomModelSerializer):
|
||||||
|
|
|
@ -21,6 +21,7 @@ class RpartyViewSet(CustomModelViewSet):
|
||||||
create_serializer_class = RpartyCreateUpdateSerializer
|
create_serializer_class = RpartyCreateUpdateSerializer
|
||||||
update_serializer_class = RpartyCreateUpdateSerializer
|
update_serializer_class = RpartyCreateUpdateSerializer
|
||||||
serializer_class = RpartySerializer
|
serializer_class = RpartySerializer
|
||||||
|
select_related_fields = ['admin', 'belong_dept']
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post': 'rparty:assgin'}, serializer_class=RpartyAssignSerializer)
|
@action(methods=['post'], detail=True, perms_map={'post': 'rparty:assgin'}, serializer_class=RpartyAssignSerializer)
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
|
|
Loading…
Reference in New Issue