我覺得這可能是簡單的東西,我很想念,但由於發佈數據來自我的角度JavaScript的AJAX調用,我不能太確定。簡而言之,我從request.body中的AJAX調用中獲取數據,我有一個函數來處理它,並將其轉換爲查詢字典以綁定到我的表單。它一直在努力,直到這一點。該表單根據form.is_valid有效,並且我可以看到數據正在發佈,但它的clean_data屬性中沒有任何內容。窗體綁定,但沒有在清潔數據
def requestPost(request):
querystring = urllib.urlencode(ast.literal_eval(request.body))
postdata = QueryDict(query_string=querystring)
return postdata
def send(request, thread_id):
# """Send a message to the thread."""
account = Account.objects.get(email=request.user.username)
thread = Thread.objects.get(id=thread_id)
if request.method == "POST":
x = requestPost(request)
form = NewChat(requestPost(request))
if form.is_valid():
cleaned_data = form.cleaned_data
threadchat = ThreadChat.objects.create(text=cleaned_data['message'], account=account, thread=thread)
broadcast(threadchat.id)
context = {"threadchat": threadchat}
return composeJsonResponse(200, "", context)
class NewChat(forms.Form):
message = forms.Textarea()
requestPost函數有什麼意義?你爲什麼不直接訪問request.POST? –
由於發佈的數據來自於AJAX調用的角度,因此數據以字符串的形式通過請求的主體屬性傳遞。所以我必須處理字符串,並將其轉換爲QueryDict – JBT