7-7 django在线教育平台----modelform提交我要学习和url分类

我要学习是一个表单提交,和之前的登录注册类似,可以用之前的方法新建forms.py进行表单数据验证

7-7 django在线教育平台----modelform提交我要学习和url分类

新建forms.py

对比model和form,即数据库中的字段和需要验证的数据,这两段代码,重复的部分很多,如果字段更多,就重复越多,所以通过继承forms.ModelForm将model转换成form

7-7 django在线教育平台----modelform提交我要学习和url分类

7-7 django在线教育平台----modelform提交我要学习和url分类

将model转换成form,会根据model中的定义进行字段的验证

7-7 django在线教育平台----modelform提交我要学习和url分类

最后编写如下,这样通过继承forms.ModelForm比继承forms.Form省去了很多重复代码,forms.ModelForm中的方法比forms.Form方法更加强大,比如继承forms.ModelForm的实例可以直接将数据保存到数据库

7-7 django在线教育平台----modelform提交我要学习和url分类

配置url

在配置url之前,首先进行url分类,这里的url越写越多,很难维护,必须进行合理分类,引入include机制进行分类

这里的验证码的url就是运用了include机制

7-7 django在线教育平台----modelform提交我要学习和url分类

点击验证码的urls进去查看验证码有哪些url,可以像这样进行分类,在主urls.py中include进去就可以了

7-7 django在线教育平台----modelform提交我要学习和url分类

授课机构相关url的分类

在organization app 下新建自己的urls.py
7-7 django在线教育平台----modelform提交我要学习和url分类

项目主urls.py中配置,引入organization app 的urls.py
url首先匹配以org/,接着去organization app 的urls.py进行匹配,匹配最终结果是org/list/
7-7 django在线教育平台----modelform提交我要学习和url分类

查看include用法,这里的namespace是命名空间,防止命名冲突
7-7 django在线教育平台----modelform提交我要学习和url分类

重启项目测试
测试成功

7-7 django在线教育平台----modelform提交我要学习和url分类

配置模板中的url
这里利用了namespace和name
7-7 django在线教育平台----modelform提交我要学习和url分类