关于点击立即咨询后,重复提交数据的问题,并且在数据表单中显示两行重复数据
来源:7-8 modelform提交我要学习咨询2

ananyoung
2017-08-11
老师,我在点击立即咨询后,代码显示提交成功,如图
但是我点击确定后,又弹出一个窗口,并且在出现错误时他也会出现,如图
继续点击确定后,程序回到if userask_form.is_valid():继续判断上次提交的数据并且返回提交成功,如图
然后我点击确定后,程序才结束,并且在后台中记录了两次数据,如图
请问老师这个是为什么呀,想了很久没明白哪边出了问题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消息 我给你远程看看
082018-10-22
相似问题