vkill'blog

“技术本身没有太多价值,掌握了新的思考方式才是真的收获”

django 中 改变 request.POST 、request.GET 和 request.META

11:46 , vkill
django 的 request.POST 这些不能直接来添加,可以copy 后 edit 然后再 replace 就ok了,这里要注意的是 request.REQUEST 不能这样改,下面是我写的实例方法来改的代码


    def update_request_GET(self, data={}):
        if  self.request.method in ("GET"):
            new_PARAMS = self.request.GET.copy()
        else:
            new_PARAMS = self.request.POST.copy()
        for k,v in data.items():
            new_PARAMS[k] = v
        if  self.request.method in ("GET"):
            self.request.GET = new_PARAMS
        else:
            self.request.POST = new_PARAMS
        self.request.PARAMS = new_PARAMS
        return self.request

    def update_request_POST(self, data={}):
        return self.update_request_GET(data)

    def update_request_META(self, data={}):
        new_META = self.request.META.copy()
        for k,v in data.items():
            new_META[k] = v
        self.request.META = new_META
        return self.request
类别:python & django | Tags: , , , | 0 条评论, 1869 次阅读
网友评论(0):
发表评论:

Nickname: 
Email:
Site URI: