有没有办法HttpRequest在Django中创建一个包含所有cgi META变量的对象?我正在尝试处理视图,但无法弄清楚如何(轻松地)创建请求对象.我只是想确保我的生活更难,而不是手动复制现有请求中的所有字段.这感觉就像有一个现有的解决方案,但经过几个小时的搜索,我找不到我需要的东西.
本来我去与Client和RequestFactory从django.test,但这些填充垃圾数据的请求对象,这将导致一些在我看来,动态字段与不正确的值来渲染(例如,之类的东西SERVER_NAME)
有没有正确的方法来创建可用的HttpRequest对象?
mod*_*tos 12
首先,我只想澄清你问题中的几个问题:
我正在尝试处理一个视图
通过"处理视图",我认为您的意思是您希望将HttpRequest对象传递到视图的函数中.这通常通过URL调度程序完成.
我只是想确保我的生活更难,而不是手动复制现有请求中的所有字段.
听起来你想根据现有的请求创建一个新的HttpRequest对象,特别是不要弄乱标题.您应该查看django.http.HttpRequest文档以重用现有请求字段中的某些字段.例如,request.META是一个可以在请求对象之间重用的字典.
看起来你最好的方法是直接使用django.http.HttpRequest对象.您可以按如下方式创建它:
from django.http import HttpRequest
request = HttpRequest()
Run Code Online (Sandbox Code Playgroud)
然后你可以设置你喜欢的字段,request.META它只是一个你可以设置的空字典.例如:
request.method = 'GET'
request.META = myOldRequest.META
request.META['SERVER_NAME'] = 'localhost'
Run Code Online (Sandbox Code Playgroud)
我可以让你看看其余的.希望这有帮助!