我對django非常陌生,並且努力做一些非常簡單的事情。 我有以下模型ModelForm
:django:在同一頁面輸入並顯示輸出結果
class Queries(models.Model):
user_id=models.CharField(max_length=200)
query=models.CharField(max_length=200)
而且我向用戶顯示一個簡單的形式,將做以下幫助:
- 用戶會問一個問題
的問題將被處理(根據問題將產生一個數據庫查詢 )
然後查詢結果shou ld將顯示在 相同頁面的表格下方。
這是我的views.py看起來像:
from django.http import HttpResponse
from django.shortcuts import get_object_or_404, render
from basicapp.models import QueryForm
def index(request):
form=MyForm()
real_form=form.getForm(request)
response=form.response
return render(request,'basicapp/index.html',{
'form': real_form,
'response':response,
})
class MyForm:
response=''
def getForm(self,request):
form = QueryForm(request.POST)
if form.is_valid():
response=form.cleaned_data['query']
form.save()
return form
現在我想簡單的東西,我是把形式的查詢字段中的值,並試圖將其發送回該頁面;到目前爲止我失敗了。 這是index.html的:
<form action=" " method="post">{% csrf_token %}
{{ form }}
<p>{{response}}</p>
<input type="submit" value="Submit" />
</form>
如果我能做到這一點,我想查詢充塞不會是tough.The形式是工作的罰款,該的數據都是得到保存在數據庫中。表格提交後,中只有response
字符串views.py
無法檢索。你能幫忙嗎?
編輯: 嘗試基於霍夫的回答中index.html
如下:
<form id="myForm" action=" " method="get">{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
<div id="response">
</div>
<script language="JavaScript">
$(document).ready(function() {
$("#myForm").submit(function() { // catch the form's submit event
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
type: $(this).attr('GET'),
success: function(response) { // on success..
$("#response").html(response); // update the DIV
}
});
return false;
});
});
</script>
仍然沒有運氣:(
你應該使用GET而不是POST。我認爲你執行搜索 – catherine 2013-02-12 16:51:21
謝謝:)編輯。 – 2013-02-12 17:12:37