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