DRF正在将我的url签名从%2B转换为'+'

2024-03-29 07:31:32 发布

您现在位置:Python中文网/ 问答频道 /正文

DRF在自描述API中呈现超链接URL的方式似乎有一个缺陷。显示时,DRF正在将我的S3(django存储)的url签名从%2B转换为'+'。但是format=json不存在此翻译问题。在

例如:

这是序列化程序:

class CatalogueSerializer(serializers.HyperlinkedModelSerializer):

    image = HyperlinkedImageField()

    class Meta:
        model = CatalogueItem
        fields = ('url', 'name', 'image')

HyperlinkedImageField:

^{pr2}$

URL值正确,签名正确。但是,当DRF呈现URL时,它会从这个。。。。在

Signature=lMG4NLl51IHeXWCU%2B2GPBN1vU30%3D&Expires=1404604768

为此:

不好

Signature=lMG4NLl51IHeXWCU+2GPBN1vU30=&Expires=1404604768

唯一的区别是%2B to '+'的翻译。在

我尝试在序列化程序中避开以下问题:

def transform_image(self, obj, value):
        return urllib.quote(value, safe="%/:=&?~#+!$,;'@()*[]")

但是,不管怎样,它总是将%2B转换为'+'。在

附近有工作吗?在


Tags: image程序apiurl序列化s3value方式