在Django序列化响应中,可以通过自定义序列化器或字段来摆脱FileField的绝对路径(media_url前缀)。
示例代码:
from rest_framework import serializers
class MySerializer(serializers.ModelSerializer):
file_field = serializers.SerializerMethodField()
def get_file_field(self, obj):
# 获取文件的相对路径
relative_path = obj.file_field.url
return relative_path
class Meta:
model = MyModel
fields = ('file_field', 'other_field')
示例代码:
from rest_framework import serializers
class RelativeFileField(serializers.Field):
def to_representation(self, value):
# 获取文件的相对路径
relative_path = value.url
return relative_path
class MySerializer(serializers.ModelSerializer):
file_field = RelativeFileField()
class Meta:
model = MyModel
fields = ('file_field', 'other_field')
通过以上两种方式,可以在Django序列化响应中摆脱FileField的绝对路径,实现返回文件的相对路径。
领取专属 10元无门槛券
手把手带您无忧上云