关于点击立即咨询后,重复提交数据的问题,并且在数据表单中显示两行重复数据

来源:7-8 modelform提交我要学习咨询2

ananyoung

2017-08-11

老师,我在点击立即咨询后,代码显示提交成功,如图

http://szimg.mukewang.com/598dba3b0001403913530803.jpg

但是我点击确定后,又弹出一个窗口,并且在出现错误时他也会出现,如图

http://szimg.mukewang.com/598dba7f000143e613530803.jpg

继续点击确定后,程序回到if userask_form.is_valid():继续判断上次提交的数据并且返回提交成功,如图

http://szimg.mukewang.com/598dbac70001738013530803.jpg

然后我点击确定后,程序才结束,并且在后台中记录了两次数据,如图

http://szimg.mukewang.com/598dbb05000160d512580761.jpg

请问老师这个是为什么呀,想了很久没明白哪边出了问题T_T。这是我的代码

class AddUserAskView(View):
   """
   用户添加咨询
   """
   def post(self, request):
       userask_form = UserAskForm(request.POST)
       if userask_form.is_valid():
           user_ask = userask_form.save(commit=True)
           return HttpResponse('{"status":"success"}', content_type='application/json')
       else:
           return HttpResponse('{"status":"fail", "msg":"添加出错"}', content_type='application/json')


from django import forms

import re
from operation.models import UserAsk


class UserAskForm(forms.ModelForm):

   class Meta:
       model = UserAsk
       fields = ['name', 'mobile', 'course_name']

   def clean_mobile(self):
       """
       验证手机号码是否合法
       """
       mobile = self.cleaned_data['mobile']
       REGEX_MOBILE = "^1[358]\d{9}$|^147\d{8}$|176\d{8}$"
       p = re.compile(REGEX_MOBILE)
       if p.match(mobile):
           return mobile
       else:
           raise forms.ValidationError("手机号码非法", code="mobile_invalid")



{% block custom_js %}
<script>
       $(function () {
           $('#jsStayBtn').on('click', function(){
               $.ajax({
                   cache: false,
                   type: "POST",
                   url:"{% url "org:add_ask" %}",
                   data:$('#jsStayForm').serialize(),
                   async: true,
                   success: function (data) {
                       console.log(data)
                       alert(data)
                       if (data.status == 'success'){
                           $('#jsStayForm')[0].reset();
                           alert("提交成功")
                       } else if (data.status == 'fail') {
                           $('#jsCompanyTips').html(data.msg)
                       }
                   },
               });
           });

       });
</script>

写回答

1回答

bobby

2017-08-14

你给我发个qq消息 我给你远程看看

0
8
bobby
回复
匹马巨蟹
好的,
2018-10-22
共8条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4041 问题

查看课程