让我们完成上一节中的任务:
1.验证price>0:需要在Form中验证;
2. 验证title唯一:在Model中验证;
3. 验证image_url的扩展名:在Form中验证,还可以顺便在Model中将其改为URLField类型。
之前生成的scaffold中已经实现了属性不能为空的验证:
但是对于url格式,rul的后缀,title的唯一性都没有验证。首先在model中增加URL格式和title唯一性的校验:
在title上增加unique=True, 并将image_url的类型改为URLField,就完成了:
剩下的图片格式后缀、价格>0的校验需要在form中实现:
depot/depotapp/forms.py
ProductForm继承自ModelForm,可以根据model属性自动生成表单。
在生成的ProductForm上增加了clean_price和clean_image_url验证。结果如下:
那么,表单是如何展现的呢?看一下template:
depot/depotapp/templates/depotapp/create_product.html
直接输出form对象({{fom}} 就会将Form格式化成表单(默认使用table,也可以通过as_p,as_ul方法指定为<p>或<li>),并且包含了错误提示信息。
{% csrf_token %}的作用是增加token表单项,避免重复提交。
分享到:
相关推荐
django学习练习:实现一个简易问卷网站
Python Django Web典型模块开发实战_用Django设计大型电商的类别表_编程项目案例实例详解课程教程.pdf
本文包含:Django框架基础知识、Django视图和模板、Django框架和模型和django框架后台、Django框架实战:开发企业官网、Rest Framework 、Vue前端、Vue+Django综合项目;Vue前端对接:通过Vue与后端API进行数据交互...
Chapter 9:User Authentication Chapter 10:Bootstrap Chapter 11:Password Change and Reset Chapter 12:Email Chapter 13:Newspaper app Chapter 14:Permissions and Authorization Chapter 15:Comments ...
Chapter 9: Best Practices for Function-Based Views Chapter 10: Best Practices for Class-Based Views Chapter 11: Form Fundamentals Chapter 12: Common Patterns for Forms Chapter 13: Templates: Best ...
Python Django Web典型模块开发实战_分析吾爱破解论坛反爬虫机制_编程项目案例实例详解课程教程.pdf
Django项目代码:爬取并展示链家上海二手房信息
Django实战
Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的实战项目源码——美多商城 Python基于Django的...
给大家分享一套课程——Django+Vue:Python Web全栈开发(基于Django4.1),已完结10章,附源码。
实战Django:Pastebin源代码.7z
《Django实战》源码(第一、第二版)源码,亲测可正常运行
Django博客使用Django制作博客
docker-jenkins-django-tutorial:实战Docker + Jenkins + Django + Postgres:memo:
django-material:Django的材质设计
一种全新的自动完成实现方法,特别适用于Django。状态:v4alpha,v3稳定,v2和v1_Python.zip
Python Django Web典型模块开发实战_区块链时代与Token登录_编程项目案例实例详解课程教程.pdf
Python Django Web典型模块开发实战_用Django REST framework实现豆瓣API应用_编程项目案例实例详解课程教程
这是我上知了课堂的Django笔记,包含了完整的项目部署过程。请注意:并不包含课堂的视频资料。
Django企业开发实战.源码