相关疑难解决方法(0)

Django REST Framework和FileField绝对URL

我已经定义了一个包含以下模型的简单Django应用程序:

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

(从技术上讲,这可能是一个ImageField.)

在模板中,将MEDIA_URL值(在settings.py中正确编码)作为缩略图URL的前缀包含在内是很容易的.以下工作正常:

<div id="thumbnail"><img src="{{ MEDIA_URL }}{{ current_project.thumbnail }}" alt="thumbnail" width="400" height="300" border="0" /></div>
Run Code Online (Sandbox Code Playgroud)

使用DRF,我定义了一个名为ProjectSerializer的HyperlinkedModelSerializer后代:

class ProjectSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Project
        fields = ( 'id' ,'url', 'name', 'thumbnail')
Run Code Online (Sandbox Code Playgroud)

我已经定义了一个非常简单的ModelViewSet后代:

class ProjectViewSet(viewsets.ModelViewSet):
    queryset = Project.objects.all()
    serializer_class = ProjectSerializer
Run Code Online (Sandbox Code Playgroud)

生成的JSON示例如下所示:

{
    "id": 1, 
    "url": "http://localhost:8000/api/v1/projects/1/", 
    "name": "Institutional", 
    "thumbnail": "media/institutional_thumb_1.jpg"
}
Run Code Online (Sandbox Code Playgroud)

我还没有弄清楚如何在项目的JSON表示中提供包含图像完整URL的缩略图字段.

我认为我需要在ProjectSerializer中创建一个自定义字段,但还没有成功.

python django url filefield

27
推荐指数
5
解决办法
2万
查看次数

标签 统计

django ×1

filefield ×1

python ×1

url ×1