[英]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.