繁体   English   中英

升级到Django 1.3后清空request.POST

[英]Empty request.POST after upgrade to Django 1.3

以下代码在Django 1.2下运行正常,但在Django 1.3下失败,因为request.POST为空,尽管表单数据已正确发布到服务器

def commit_form(request):
    logging.debug(str(datetime.datetime.now()) + ": commit data " + request.raw_post_data)
    purchase = Purchase.objects.get(transaction_id=request.POST['TransactionID']) #breaks here, request.POST is empty

    #other stuff...

    return HttpResponse("GOOD", mimetype="text/plain") 

为什么这不起作用,我在这里看不到任何错误?

我有一个类似的问题(空request.POST)与django 1.3,但它是由于我的HTML中的一个错误。

我有一个带有action="foo"的表单,但我的urls.py将“foo /”映射到视图(我期待一些POST数据,并且没有获取)。 Django善意服务器端将“foo”的请求重定向到“foo /”,但POST数据未作为交易的一部分重新提交给“foo /”。 事后看来,这似乎很明智。 改变我的形式(to action="foo/" )修复它,我想改变urls.py也可以。

还要检查您的内容类型标题。

例如。

'CONTENT_TYPE': 'application/x-www-form-urlencoded'

如果此标头丢失或无效,早期版本更容易适应。

我记得有这样的问题,结果是访问request.raw_post_data阻止了request.POST dict随后填充了post params。 如果删除logging.debug行会发生什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM