如何在Django RF中返回绝对路径

时间:2017-05-25 16:19:38

标签: django django-rest-framework

我将文件上传到服务器到按项目组织的特定文件夹。 (我忘了提到我使用Docker)

在DB上我保存:

ID

4

路径

/var/local/vvv/project-files/project_2/v_5//r_4_C5R1ud0W8AQwnxa.jpg:large.jpeg

文件名

r_4_C5R1ud0W8AQwnxa.jpg:large.jpeg

FILE_TYPE

jpeg

我如何获得绝对路径?

这样的事情:

http://127.0.0.1:8000/media/r_4_C5R1ud0W8AQwnxa.jpg

我唯一能做的就是:

http://127.0.0.1:8000/api/vv/download_resource/4

但它并不能满足我的需要。

请帮助

我的模型图像在哪里:

class Resource(utils.SafeDeleteModel):
    path      = models.CharField(max_length=200, null=True)  # just to define where to save to
    file_name = models.CharField(max_length=100, null=True)
    file_type = models.CharField(max_length=100, null=True)

    added_on  = models.DateTimeField(auto_now_add=True)
    added_by  = models.ForeignKey(User, null=True, blank=True)
    comment   = models.TextField(null=True, blank=True)

1 个答案:

答案 0 :(得分:1)

您可以使用函数序列化Django RF中的任何字段,例如:

class FooSerializer(serializers.ModelSerializer):

    foo_image = serializers.SerializerMethodField('get_image_url')

    class Meta:
        model = Foo
        fields = ('image',)

    def get_thumbnail_url(self, obj):
        return obj.image.url

这可能最终会返回你想要的东西。