django:表单提交后从数据库中读取

时间:2015-06-10 16:31:30

标签: django database forms django-models django-views

我在django模板中有一个表单,在提交时调用javascript函数:

<input name="button2" type="submit" class="test" id="button2" value="submit"
       onclick="checkSubmitStatus();"/>

表单提交后,python视图中的一些代码,将此表单中的数据写入数据库。像:

if request.method == 'POST':
    customer_data = Customers(CustomerID=1, CustomerName=request.POST['textfield1'])
    customer_data.save()
    return HttpResponse(status=204)

在javascript函数中,我使用ajax从服务器获取一些数据:

<script type="text/javascript">
    function checkSubmitStatus() {
        $.ajax({
            url: "CustomerData",
            type: 'get',
            datatype: 'html',
            async: false,
            success: function(data) {
                x = data;
            }
        });
            Alert(x);
    }

当CustomerData从DB读取数据时:

return HttpResponse(Customers.objects.get(CustomerID=1).CustomerName)

我希望CustomerData提供修改后的数据(我在模板表单中输入的数据),同时返回以前的数据。当我刷新页面时,我可以看到更新的数据。所以我确定将表单数据写入DB,但脚本显示了破旧的数据。

1 个答案:

答案 0 :(得分:0)

这段代码没有多大意义。你的JS函数在提交时被调用;也就是说,在单击提交按钮的位置。但到那时,数据还不存在,因为你还没有提交表格;并且无论如何,任何Ajax调用都将立即被提交操作替换,因此永远不会调用回调。

我不明白为什么你有这种混合形式的POST / Ajax GET。通过Ajax提交表单并返回该调用中的更新数据;或者,正常提交表单,并在提交的标准HTML响应中返回更新的数据。