From 2aed80c8728b56ab0b9c8573fa2789297922a17c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=9D=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Fri, 5 Dec 2025 14:13:09 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20FileField=20=D0=B2=D0=BC?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=20SerializerMethodField=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20attachment=5Furl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Изменено attachment_url на serializers.FileField (как в DocumentReadSerializer) - Удален ручной метод get_attachment_url - DRF автоматически преобразует FileField в абсолютный URL при наличии request в контексте --- backend/api/v1/requests_app/serializers.py | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/backend/api/v1/requests_app/serializers.py b/backend/api/v1/requests_app/serializers.py index 6edc7558..7496ae4f 100644 --- a/backend/api/v1/requests_app/serializers.py +++ b/backend/api/v1/requests_app/serializers.py @@ -73,8 +73,8 @@ class RequestReadSerializer(serializers.ModelSerializer): display_title = serializers.CharField(read_only=True) is_final = serializers.BooleanField(read_only=True) - # URL для вложенного файла - attachment_url = serializers.SerializerMethodField() + # URL для вложенного файла (аналогично file_url в DocumentReadSerializer) + attachment_url = serializers.FileField(source="attachment", read_only=True) # Новые поля для получателей departments = serializers.PrimaryKeyRelatedField( @@ -161,16 +161,6 @@ class RequestReadSerializer(serializers.ModelSerializer): if not user or not user.is_authenticated: return False return obj.is_recipient(user) - - def get_attachment_url(self, obj): - """Возвращает полный URL к прикрепленному файлу""" - if not obj.attachment: - return None - request = self.context.get('request') - if request: - return request.build_absolute_uri(obj.attachment.url) - # Fallback на относительный URL если нет request - return obj.attachment.url class RequestWriteSerializer(serializers.ModelSerializer):