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转换为'+'。在
附近有工作吗?在
您可以在“slagify”中包装任何字符串:https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.text.slugify
确保字符串始终是“URL安全的”
相关问题 更多 >
编程相关推荐