请求中是否有参数.POST和request.GET同时在请求中。或者我必须检查每一个?
我在REQUEST / QueryDict的文档中找不到明确的信息。 NB:Django 1.4 Final
答案 0 :(得分:9)
不,这在旧版本中是可能的,但在Django 1.7中被折旧。对于运行古代版本的Django考古学家,请继续阅读。
HttpRequest.REQUEST
为方便起见,首先搜索POST的字典对象,然后GET。灵感来自PHP的$ _REQUEST。
例如,如果GET = {“name”:“john”}和POST = {“age”:'34'},则REQUEST [“name”]将为“john”,并且REQUEST [“age”]将是“34”。
强烈建议您使用GET和POST而不是REQUEST,因为前者更明确。
答案 1 :(得分:1)
是的,医生说:
HttpRequest.REQUEST为方便起见,这是一个类似字典的对象 先搜索POST,然后再搜索。灵感来自PHP的$ _REQUEST。
例如,如果GET = {“name”:“john”}和POST = {“age”:'34'}, REQUEST [“name”]为“john”,REQUEST [“age”]为“34”。
强烈建议您使用GET和POST而不是REQUEST, 因为前者更明确。
答案 2 :(得分:1)
试试这个:
name = request.GET.get('name',request.POST.get('name'))
答案 3 :(得分:1)
如果您不确定需要使用哪个,可以方便地替换为:
def get_post_or_get(request):
"""
Return the equivalent of request.REQUEST
which has been removed in Django 1.9
"""
return request.POST or request.GET
参考: https://github.com/edx/django-openid-auth/pull/5/commits/aa5eef791cd487eb359db25011572d5966a2c92a