diff --git a/server/apps/supervision/serializers.py b/server/apps/supervision/serializers.py index 637853c..95c3dd9 100644 --- a/server/apps/supervision/serializers.py +++ b/server/apps/supervision/serializers.py @@ -134,22 +134,29 @@ class ValidateMixin: if task2do: if task2do.task2.state == Task2.TASK2_CLOSE: raise ParseError('任务已关闭不可处理') - attrs['year'] = task2do.task2.year - attrs['belong_dept'] = task2do.task2.belong_dept + attrs['belong_dept'] = task2do.belong_dept return attrs class BaseMeta: fields = '__all__' read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted', 'belong_dept'] -class PgoalDeptSerializer(ValidateMixin, serializers.ModelSerializer): +class PgoalDeptSerializer(serializers.ModelSerializer): goal_file_ = FileSimpleSerializer(source='goal_file', read_only=True) goal_o_file_ = FileSimpleSerializer(source='goal_o_file', read_only=True) class Meta(BaseMeta): model = PgoalDept read_only_fields = BaseMeta.read_only_fields + ['goal_value_a', 'goal_value_c', 'goal_files', 'goal_key', 'goal_file_', 'goal_o_file', 'goal_o_file_'] - + def validate(self, attrs): + task2do = attrs.get('task2do', None) + if task2do: + if task2do.task2.state == Task2.TASK2_CLOSE: + raise ParseError('任务已关闭不可处理') + attrs['year'] = task2do.task2.year + attrs['belong_dept'] = task2do.belong_dept + return attrs + class RcSerializer(ValidateMixin, serializers.ModelSerializer): class Meta(BaseMeta):