diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index a7119fa..ef5b1ef 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.system.models import City, Organization +from apps.system.models import City, Organization, Province from .models import QAction, QActionItem, QOrg, QTask, Quali, QualiLib from django.db import transaction from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer @@ -160,6 +160,17 @@ class QActionItemSerializer(serializers.ModelSerializer): class QActionDetailSerializer(serializers.ModelSerializer): update_detail = QActionItemSerializer(source='items_qaction', many=True, read_only=True) + value2 = serializers.SerializerMethodField() class Meta: model = QAction - fields ='__all__' \ No newline at end of file + fields ='__all__' + + def get_value2(self, obj): + value2 = obj.value2 + if 'province' in value2: + value2['province_name'] = Province.objects.get(id=value2['province']).name + if 'city' in value2: + value2['city_name'] = City.objects.get(id=value2['city']).name + if 'citys' in value2: + value2['citys_'] = CitySerializer(instance=City.objects.filter(id__in=value2['citys']), many=True).data + return value2 \ No newline at end of file diff --git a/server/apps/ability/views_qtask.py b/server/apps/ability/views_qtask.py index 595d139..45d7b8b 100644 --- a/server/apps/ability/views_qtask.py +++ b/server/apps/ability/views_qtask.py @@ -175,12 +175,13 @@ class QActionViewSet(PageOrNot, ListModelMixin, DestroyModelMixin, RetrieveModel serializer.is_valid(raise_exception=True) obj = serializer.save(create_by=user, belong_dept=user.dept) vdata = serializer.validated_data + value2 = request.data.get('value2', {}) # 比较差别 - quali = Quali.objects.get(id=obj.value2.get('id')) - old_data = QualiSerializer(instance=quali).data + quali = Quali.objects.get(id=value2.get('id')) + old_data = QualiListSerializer(instance=quali).data obj.value1 = old_data obj.save() - for k, v in obj.value2.items(): + for k, v in value2.items(): if v != old_data[k]: QActionItem.objects.create(action='update', field=k, value1=old_data[k], value2=v, qaction=obj) if k == 'citys':