From dc6308b030e6b962313cf55f410edf9802ff8844 Mon Sep 17 00:00:00 2001 From: jiangweidong <1053570670@qq.com> Date: Wed, 23 Apr 2025 17:32:10 +0800 Subject: [PATCH] perf: if the apply-asset-ticket name is 128 characters long, will raise 500 --- apps/tickets/serializers/ticket/common.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/tickets/serializers/ticket/common.py b/apps/tickets/serializers/ticket/common.py index 90204c18a..fa47cf1c8 100644 --- a/apps/tickets/serializers/ticket/common.py +++ b/apps/tickets/serializers/ticket/common.py @@ -69,10 +69,17 @@ class BaseApplyAssetSerializer(serializers.Serializer): return attrs + @staticmethod + def _get_permission_name(ticket): + name = _('Created by ticket ({}-{})').format(ticket.title, str(ticket.id)[:4]) + if len(name) > 128: + name = name[:121] + '...' + name[-4:] + return name + @atomic def create(self, validated_data): instance = super().create(validated_data) - name = _('Created by ticket ({}-{})').format(instance.title, str(instance.id)[:4]) + name = self._get_permission_name(instance) org_id = instance.org_id with tmp_to_org(org_id): if not self.permission_model.objects.filter(name=name).exists():