如何在Django中禁用自动URL参数解码?

问题描述

我有一个viewset和一个retrieve视图,该视图带有一个参数,该参数是经过字符串url编码的,因为它通常带有'/'。现在,当我使用本地编码的网址(每个/%2F替换)发送到本地开发服务器的请求时,我从服务器中获取了404,并且在“请求URL”中看到了我的字符串,但是已解码-因此,没有这样的路线是有道理的。使用api/ ^topic/(?P<pk>[^/.]+)/$在此调试视图中正确显示了路由。这是我的观点:

class TopicAPI(viewsets.ViewSet):
    def retrieve(self,request,pk=None):
        if '%2F' in pk:
            pk = pk.replace('%2F','/')
        # Data retrival which works (independently tested)
        return Response(topics)

我尝试了不同的单词和不同的替换方法,即用'-'代替了'2%F',虽然它可以工作,但不如URL编码稳定。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...