簡體   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