2016-12-24 81 views
0

我有一个简单的表格,添加了一个家庭的个人信息。有时它通过一个提交节省了两个人的实例。也许我的鼠标有问题,双击而不是一次点击(它有一些问题)。我认为这是不可能的,django只接受来自表单实例的一个发布请求,而不是更多(也许它接受)。如果代码有问题呢?如果它是我的代码问题,为什么它偶尔会发生?如何通过一次点击避免多发邮件请求?

house = get_object_or_404(House, id=code) 
if request.method == 'POST': 
    form = ParentForm(request.POST) 
    if form.is_valid(): 
     # save it if it's valid 
     parent = form.save(commit=False) 
     if parent.living == 0: 
      parent.in_family = 0 
     if not parent.guardian: 
      parent.save() 
     if parent.guardian and parent.in_family: 
      parent.save() 

我使用Django 1.8

编辑清除:这是不是唯一的视图有时可以节省两次。也许是在Django

+0

可能你的视图在代码的任何部分返回HttpRedirect本身? – neverwalkaloner

+0

不,它不是。它在别的地方 –

回答

0

的错误要解决这个问题,首先需要在相应的数据库表中创建唯一约束。真正的解决方案基于数据库模式。我不知道parent表中有哪些字段(列),您可以从对这两个字段添加唯一约束开始:child_idparent_name

另一个问题是,你需要避免第二次点击。所以基本上你需要编写一些JavaScript代码:它听取提交按钮的onClick事件。点击按钮后,侦听器将disabled属性设置为该按钮以防止进一步点击。