也許這是我的一部分壞序列化的問題,但我有問題,我的數據反序列化:反序列化的查詢字符串的QueryDict(通過AJAX發送)
我發送的ModelForm通過AJAX(由POST)至一個看法。沒有錯誤,但保存的ModelForm在我的模型中創建了一個空項目。
我已檢查調試器request.POST
:沒有對應於什麼是由AJAX發出的密鑰,但它不是一個的QueryDict但形式的字符串:
request.POST['keyinrequestpost'] = 'csrfmiddlewaretoken=pA.....zutQ&FirstField=BlaBlad&SecondField=BlaBla&ThirdField=BlaBla'
顯然,這樣做則:
MyModelForm(request.POST['keyinrequestpost'])
不工作(創建項目只拿到了空字段),因爲它不是一個的QueryDict? 我以爲轉換是自動的?
我該如何反序列化以獲得QueryMode可用於MyModelForm()?
我的AJAX:
$(document).ready(function(){
$('#newword_form').bind('submit', function(e){
var newword_form = $('#newword_form')
newword_form_serialized = newword_form.serialize();
$.ajax({url: '/create_newword/',
type: 'POST',
dataType: 'json',
data:{csrfmiddlewaretoken: '{{ csrf_token }}',
'newword': newword_form_serialized } ,
success: function(data){
...
和我的觀點:
if 'newword' in request.POST.keys(): # the form has been posted
f = MyModelForm(request.POST['newword'])
if f.is_valid():
word = f.save()
return render(request, ...
精彩的回答!非常感謝您的時間。而Ajax中的'錯誤'部分爲我解決了更多問題。 – ThePhi