url分发配置:
url会越来越多所以需要在各自的APP中编写urls方便管理
在项目urls中配置课程机构的url
新建urls
配置前端页面跳转 此处就是urls中的namespace命名空间的作用
前端页面我要学习功能实现
在organization中新建forms.py
# !/usr/bin/env python # -*- coding:utf-8 -*- __author__ = '_X.xx_' __date__ = '2018/6/9 18:52' from django import forms from operation.models import UserAsk import re 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(u"手机号码非法", code="mobile_invalid")
在view视图函数中编写
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')
在org-list.html页面中编写Js
{% 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) {
if(data.status == 'success'){
$('#jsStayForm')[0].reset();
alert("提交成功")
}else if(data.status == 'fail'){
$('#jsCompanyTips').html(data.msg)
}
},
});
});
})
</script>
{% endblock %}
提交正确数据会存储到数据库