【问题标题】:Django REST Framework and FileField absolute url on the same field同一字段上的 Django REST Framework 和 FileField 绝对 url
【发布时间】:2017-07-17 22:22:10
【问题描述】:

默认情况下,DRF 将文件字段或图像字段路径序列化为其相对路径。

喜欢这个问题Django REST Framework and FileField absolute url

我知道可以生成一个名为“file_url”的自定义字段并序列化完整路径。

但是可以在同一个字段中序列化吗?喜欢:

class Project(models.Model):
    name = models.CharField(max_length=200)
    thumbnail = models.FileField(upload_to='media', null=True)

class ProjectSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Project
        fields = ( 'id' ,'url', 'name', 'thumbnail')

class ProjectViewSet(viewsets.ModelViewSet):
    queryset = Project.objects.all()
    serializer_class = ProjectSerializer

{
    "id": 1, 
    "url": "http://localhost:8000/api/v1/projects/1/", 
    "name": "Institutional", 
    "thumbnail": "ABSOLUTE URL"
}

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    你可以重写 to_representation 方法并在那里写一个绝对路径:

    class ProjectSerializer(serializers.HyperlinkedModelSerializer):
    
        class Meta:
            model = Project
            fields = ( 'id' ,'url', 'name', 'thumbnail')
    
        def to_representation(self, instance):
            representation = super(ProjectSerializer, self).to_representation(instance)
            domain_name = # your domain name here
            full_path = domain_name + instance.thumbnail.url
            representation['thumbnail'] = full_path
            return representation
    

    【讨论】:

      猜你喜欢
      • 2014-07-18
      • 1970-01-01
      • 2015-04-16
      • 2021-09-03
      • 2013-01-15
      • 1970-01-01
      • 2019-08-10
      • 2014-11-14
      • 2021-07-09
      相关资源
      最近更新 更多