diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index 6a3025f0..167a176f 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -262,6 +262,7 @@ class RouteSerializer(CustomModelSerializer): class SruleSerializer(CustomModelSerializer): + belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) class Meta: model = Srule fields = '__all__' diff --git a/apps/mtm/views.py b/apps/mtm/views.py index 19fde0ed..cdc3dad0 100644 --- a/apps/mtm/views.py +++ b/apps/mtm/views.py @@ -233,5 +233,16 @@ class SruleViewSet(CustomModelViewSet): serializer_class = SruleSerializer select_related_fields = ['belong_dept'] filterset_fields = ['belong_dept'] - search_fields = ['rule'] - \ No newline at end of file + search_fields = ['belong_dept__name'] + + def add_info_for_list(self, data): + rule_list = [x['rule'] for x in data] + teamIds = [] + for rule in rule_list: + teamIds.extend(rule) + teams = Team.objects.filter(id__in=teamIds).values_list('id', 'name') + teams_dict = dict(teams) + for item in data: + rule = item["rule"] + item["rule_display"] = "->".join([teams_dict.get(x, '未知') for x in rule]) + return data \ No newline at end of file