据我所知,请求对象是不可变的,通过 request._body 或 request._data 等封闭属性修改请求是不好的做法。由于它到处都被描述为不好的做法,所以我缺乏细节来理解为什么应该避免它。动态更改请求的最佳方法是什么(例如,如果我们需要解码 request.body 中的值)。
作为替代方案,我可以想象自定义序列化器与自定义解码序列化器。字段,但也许有更聪明的解决方案?预先感谢您!
在DRF中修改请求内容的最佳方法是创建自定义解析器。您可以对现有解析器之一进行子类化并重写解析方法以应用解码或其他更改。然后,您可以使用 @parser_classes 装饰器将自定义解析器应用到特定视图。