返回详细内容

This commit is contained in:
曹前明 2022-06-02 15:06:58 +08:00
parent defcb4aa7f
commit b9e66f4bd7
2 changed files with 17 additions and 5 deletions

View File

@ -1,6 +1,6 @@
from rest_framework import serializers 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 .models import QAction, QActionItem, QOrg, QTask, Quali, QualiLib
from django.db import transaction from django.db import transaction
from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer
@ -160,6 +160,17 @@ class QActionItemSerializer(serializers.ModelSerializer):
class QActionDetailSerializer(serializers.ModelSerializer): class QActionDetailSerializer(serializers.ModelSerializer):
update_detail = QActionItemSerializer(source='items_qaction', many=True, read_only=True) update_detail = QActionItemSerializer(source='items_qaction', many=True, read_only=True)
value2 = serializers.SerializerMethodField()
class Meta: class Meta:
model = QAction model = QAction
fields ='__all__' 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

View File

@ -175,12 +175,13 @@ class QActionViewSet(PageOrNot, ListModelMixin, DestroyModelMixin, RetrieveModel
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
obj = serializer.save(create_by=user, belong_dept=user.dept) obj = serializer.save(create_by=user, belong_dept=user.dept)
vdata = serializer.validated_data vdata = serializer.validated_data
value2 = request.data.get('value2', {})
# 比较差别 # 比较差别
quali = Quali.objects.get(id=obj.value2.get('id')) quali = Quali.objects.get(id=value2.get('id'))
old_data = QualiSerializer(instance=quali).data old_data = QualiListSerializer(instance=quali).data
obj.value1 = old_data obj.value1 = old_data
obj.save() obj.save()
for k, v in obj.value2.items(): for k, v in value2.items():
if v != old_data[k]: if v != old_data[k]:
QActionItem.objects.create(action='update', field=k, value1=old_data[k], value2=v, qaction=obj) QActionItem.objects.create(action='update', field=k, value1=old_data[k], value2=v, qaction=obj)
if k == 'citys': if k == 'citys':