(四)Django 在线平台(通过model form实现页面ajax 提交功能)

url分发配置:

url会越来越多所以需要在各自的APP中编写urls方便管理

在项目urls中配置课程机构的url


新建urls

(四)Django 在线平台(通过model form实现页面ajax 提交功能)_第1张图片

配置前端页面跳转 此处就是urls中的namespace命名空间的作用



前端页面我要学习功能实现

(四)Django 在线平台(通过model form实现页面ajax 提交功能)_第2张图片

在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 %}

(四)Django 在线平台(通过model form实现页面ajax 提交功能)_第3张图片

提交正确数据会存储到数据库

(四)Django 在线平台(通过model form实现页面ajax 提交功能)_第4张图片

你可能感兴趣的:(Django)