15Django实战第15天:我要学习咨询
Posted 何波安的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了15Django实战第15天:我要学习咨询相关的知识,希望对你有一定的参考价值。
今天完成的是课程机构列表页面的最后一个模块:我要学习
我们在models中创建对应的表时UserAsk。之前我们讲过:在做表单的时候,我们可以通过forms先对提交的数据做验证,之前我们使用的是Form,当一张表里面的字段比较多,我们可以采用Model.Form
在organizations下面新建forms.py
class UserAskForm(forms.ModelForm): class Meta: model = UserAsk #我们可以指定model里那些字段,比如说add_time我们就不需要 fields = [\'name\', \'mobile\', \'course_name\']
后台逻辑:编辑organization.views.py
... from django.http import HttpResponse from .forms import UserAskForm class AddUserAskView(View): def post(self, request): userask_form = UserAskForm(request.POST) if userask_form.is_valid(): userask_form.save(commit=True) return HttpResponse(\'{"status":"success"}\', content_type=\'application/json\') else: return HttpResponse(\'{"status":"fail", "msg":"添加出错"}\', content_type=\'application/json\')
配置一条url,编辑urls.py
... from organization.views import AddUserAskView urlpatterns = [ ... url(r\'^add_ask/$\', AddUserAskView.as_view(), name=\'add_ask\'), ]
前端部分:编辑org-list.html,把base.html底部的js剪切放入到{% block custom_js%}中
然后对这个js进行修改
表单那边添加{% csrf_token %}
现在访问这个页面测试功能是OK,但是还存在一个问题,就是我们输入任意的手机号码,也可以提交成功,一般我们都会对手机用正则做匹配,编辑organization.forms.py
from django import forms from operation.models import UserAsk import re class UserAskForm(forms.ModelForm): class Meta: model = UserAsk #我们可以指定model里那些字段,比如说add_time我们就不需要 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\')
最后我们打个断点测试,故意输入不符合要求的手机号
以上是关于15Django实战第15天:我要学习咨询的主要内容,如果未能解决你的问题,请参考以下文章
第81题JAVA高级技术-多线程15(CompletableFuture实战)
第81题JAVA高级技术-多线程15(CompletableFuture实战)
100天精通Oracle-实战系列(第15天)使用 RMAN 备份异机恢复 Oracle 数据库