我对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