因为我需要和旧的客户端兼容,我使用django-rest-framework和django_filter,例如,当我收到一个请求http://0.0.0.0:8000/api/exercises/?pk=13时,我想修改参数http://0.0.0.0:8000/api/exercises/?id=13。
其他:http://0.0.0.0:8000/api/exercises/?displayName=ABC变更为http://0.0.0.0:8000/api/exercises/?display_name=ABC
将http://0.0.0.0:8000/api/exercises/?target=1,2更改为http://0.0.0.0:8000/api/exercises/?target=1&target=2
在处理请求之前,有没有什么地方可以写代码?我尝试在中间件中修改request. environ ['QUERY_STRING']和request. META ['QUERY_STRING'],但是没有效果。
谢谢。
2条答案
按热度按时间wgxvkvu91#
我相信您可以利用
RedirectView
并覆盖get_redirect_url
方法来Map查询参数中的更改。具体实施细节可参考官方文档。
64jmpszr2#
你可以使用django的
redirect
函数来实现这个功能,在你的旧视图中只需要将它重定向到你的新视图。一个简单的例子-
因此,如果有人输入您的旧网址,它将被重定向到一个新的没有任何问题。