blank在数据库上存储的是一个空字符串 如需设置字段可以为空:blank=True,默认为blank=False(字段必须填写); null在数据库上表现为NULL,而不是一个空字符串 如需设置字段可以为空:null=True,默认为null=False(字段必须填写); 注意: 日期类型(DateField.TimeField.DateTimeField)和数字类型(IntegerField.DecimalField.FloatField)不能接受空字符串,因此这两种类型类型的字段如果要设置…
null 这个选项跟数据库有关. null=True的话,数据库中该字段是NULL,即允许空值:null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值. blank 这个选项和数据验证(表单验证等)有关. blank=False(默认)的话,字段没被赋值则会抛错:blank=True则不会. CharField和TextField CharField和TextField如果没有赋值的话,会被保存成空字符串而不是NULL. 其他字段,例如IntegerField.Date…
看mastering django:core,中文名<精通django>里的, 说得在理点. 截个图…
今天遇到一个问题: 在restframework框架中开发,数据库了创建了一个model的属性如下所示: remarks = models.CharField(verbose_name=u"描述", max_length=500, null=True) remarks为非必传数据,所以在serializer中没有加验证,当时觉得没什么问题,但在提交数据时remarks为空字符串,报错为‘验证失败,remarks不能为空’.但当remarks不传值时则没有报错.后来经过一番查找搜索,发现…
当我们在django中添加一个数据库字段时,我们通常会写models.CharField(max_length = 100,null = True,blank = True).用ForeignKey,DecimalField做同样的事情.有什么基本的区别在于 null = True only blank = True only null = True,blank = True 关于不同的(CharField,ForeignKey,ManyToManyField,DateTimeField)字段.…
昨天很蠢的问leader git push的时候会不会把本地的数据库文件上传上去,意思是django中那些migration文件修改之后会不会上传. 然后得知不会,因为所有的数据库都存在本机的mysql啊,怎么可能传过去呢?然后同时还有.gitignore文件啊,过滤了很多文件. 同时我以为migration文件就是数据库文件,然而实际上是什么呢? 是操作数据库的文件,会通过这个去创建一系列的表.看看内容就知道了: class Migration(SchemaMigration): def fo…
所谓网页开发是有趣的,管理界面是千篇一律的.所以就有了django自动管理界面来减少重复劳动. 一.激活管理界面 1.django.contrib包 django自带了很多优秀的附加组件,它们都存在于django.contrib包里,与django捆绑,使开发人员不需要重复造轮子.django.contrib是一套庞大的功能集,它是Django基本代码的组成部分,Django框架就是由众多包含附加组件(add-on)的基本代码构成的. django自动管理工具就是django.contrib的一…
admin是django自带的后台管理,在初始的时候就默认配置好了 当输入ip地址的时候后面跟admin,就会登陆管理员的后台,这个是django自带的,可以快速管理数据表(增删改查) PS:ip地址后/admin就可以登陆,登录前要先创建一个超级用户的账号 菜单的tools - run manage.py task... 输入createsuperuser 根据提示创建,密码必须是8位不能纯数字   root/root123456 在admin.py文件夹内 from django.contr…
需求分析 很多电商网站中有组合搜索的功能,所谓组合搜索就是网页中组合多个条件,对数据库中进行查询,并且将结果显示在页面中,看个例子吧: 注意红框中的标识,我们可以根据URL来做组合搜索. video-3-1-1.html 使用split可以将三个数字取到, 第一位数字: 分类 第二位数字: 课程名称 第三位数字: 级别 分析到这里,我们就可以进行下一步了. Code分析 urls.py 首先,如果想把url按我们的需求取出来,我们可以在urls.py中设置: from app01 import…
django中ModelForm学习系列一~save方法 Model代码 from django.db import models # Create your models here. class ProjectInformation(models.Model): """ 项目基本信息 """ ResearchClassify = ( ('药物类','药物类'), ('器械类','器械类'), ('试剂类', '试剂类'), ('临床研究学',…
一.django admin前言 1.admin的作用 为了方便后台开发者快速的部署测试环境,于是就产生了admin,admin主要是操作models中的类从而实现对数据库中的数据增删改查的操作. 2.admin的使用环境 1.首先项目中的models.py必须要有相应的类 from django.db import models class UserInfo(models.Model): name=models.CharField(max_length=32) email=models.Ema…
1.构造父子结构: 1.1需求样式 客户列表 customer_list /customer/list/ -----> 添加客户 customer_add /customer/add/ -----> 编辑客户 customer_edit /customer/edit/(?P<cid>\d+)/ -----> 删除客户 customer_del /customer/del/(?P<cid>\d+)/ -----> 批量导入客户 customer_import…
权限认证 权限概念 """ 在实际开发中,项目中都有后台运营站点,运营站点里面会存在多个管理员, 那么不同的管理员会具备不同的任务和能力,那么要实现这样的管理员功能,那么就需要了解权限机制了. 在开发中, 一般现在流行的权限机制有2种: RBAC[基于角色(分组)的权限认证]和Auth认证[授权认证机制] 我们使用的django框架内部集成的Auth模块实际上就是基于RBAC开发出来的权限认证机制. 在开发中,实现RBAC权限机制,一般有2种不同的设计方式:分别是3表和5表…
需求分析 一般论坛中有评论和子评论,这样很容易就成了一个评论树,比如以下情况,先看数据结构: #nid,评论内容,跟帖对象(None为根评论) (1, '111', None), (2, '222', None), (3, '33', None), (9, '999', 5), (4, '444', 2), (5, '555', 1), (6, '666', 4), (7, '777', 2), (8, '888', 4), 可以使用递归来处理,先把数据通过有序字典,key为对象,value为有…
一.动态显示二级菜单 1.修改权限表结构 (1)分析需求,要求左侧菜单如下显示: 客户管理: 客户列表 账单管理: 账单列表 (2)修改rbac下的models.py,修改后代码如下: from django.db import models class User(models.Model): """ 用户表 """ name = models.CharField(verbose_name='用户名', max_length=32) passwo…
1. 概述 Django 中的 django.contrib.auth 应用提供了完整的用户及认证授权功能. Django 官方推荐基于内置 User 数据模型创建新的自定义用户模型,方便添加 birthday 等新的用户字段和功能. 本文包含的内容有: 介绍在 Django 中如何自定义用户模型,并集成到系统. 定制 django.contrib.auth 应用使用的模板文件. 在系统中集成认证与授权功能. 以下所有示例在 Python 3.8.2 + Django 2.1 中实现. 2. 自…
1.model 假设我们的model如下: 某个JobType下有很多Job. class JobType(models.Model): name = models.CharField(max_length=10) description = models.CharField(max_length=100, null=True, blank=True) def __str__(self): return self.name class Job(models.Model): name = mode…
obj._meta.fields 为关键 obj为model类 推荐使用函数 from django.apps import apps def getmodelfield(appname,modelname,exclude): """ 获取model的verbose_name和name的字段 """ modelobj = apps.get_model(appname, modelname) filed = modelobj._meta.field…
基础接口 序列化:course/serializers.py from rest_framework import serializers from .models import CourseCategory, Course, Teacher class CourseCategorySerializer(serializers.ModelSerializer): class Meta: model = CourseCategory fields = ["id","name&q…
项目文件:   models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class UserInfo(AbstractUser): role=models.ManyToManyField(to='Role',verbose_name='角色',null=True,blank=True) def __str__(self…
一.简介 # 组合搜索# 技术方向:自动化,测试,运维,前端# 分类:Python Linux JavaScript OpenStack Node.js GO# 级别:初级 中级 高级 骨灰级 有4张表:Direction(技术方向标),Classification(技术分类表),Level(难度级别表),Video(视频表) 它们的关系是: Direction与Classification多对多关系 Video与Classification,Level是一对多关系 最终要实现的结果如下图: 二…
In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? checks if an element - like a string or an array f.e. - is empty: # Array [].empty? #=> true # String "".empty? #=> true Rails adds the method…
In Ruby, you check with nil? if an object is nil:article = nil article.nil? # => true empty? checks if an element - like a string or an array f.e. - is empty: # Array [].empty? #=> true # String "".empty? #=> true Rails adds the method …
In Ruby, you check with nil? if an object is nil: article = nil article.nil? # => true empty? checks if an element - like a string or an array f.e. - is empty: # Array [].empty? #=> true # String "".empty? #=> true Rails adds the method…
null 如果为 True , Django 在数据库中会将空值(empty)存储为 NULL .默认为 False . blank 设置字段是否可以为空,默认为False(不允许为空) 和null的区别在于:null是数据库的范围,而blank是用于验证.如果一个字段的 blank=True ,Django 在进行表单数据验证时,会允许该字段是空值.如果字段的 blank=False ,该字段就是必填的. 参考: https://www.jianshu.com/p/c10be59aad7a…
null: If True, Django will store empty values as NULL in the database. Default is False. 如果为True,空值将会被存储为NULL,默认为False. blank: If True, the field is allowed to be blank. Default is False. 如果为True,字段允许为空,默认不允许.…
null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空,即在Null字段显示为YES. blank 是针对表单的,如果 blank=True,表示你的前端表单填写该字段的时候可以不填,但是对数据库来说,没有任何影响…
blank 设置为 True 时,字段可以为空 设置为 False 时,字段是必须填写的 默认为 False null 设置为 True 时,数据库的字段允许为NULL,而且表单中的空值将会被存储为NULL 设置为 False 时,数据库的字段不允许为NULL 默认为 False 概括来说: blank只是在表单验证的时候会检测你是否可以为空 null则是在表单数据为空值时会向数据库插入NULL 但是由于各数据类型的特点,使用效果也不相同: Field 类型 设置null=True 设置blan…
blank只是在填写表单的时候可以为空,而在数据库上存储的是一个空字符串:null是在数据库上表现NULL,而不是一个空字符串: 需要注意的是,日期型(DateField.TimeField.DateTimeField)和数字型(IntegerField.DecimalField.FloatField)不能接受空字符串,如要想要在填写表单的时候这两种类型的字段为空的话,则需要同时设置null=True.blank=True: 另外,设置完null=True后需要重新更新一下数据库.…
在 Java.C# 中,相信如果是 boolean 类型值,只有两种选择 true.false.然而,在 SQL 查询中,NULL 值的引入,使得新增了 UNKNOW ,因此,就产生了 TRUE.FALSE.UNKNOW 三种选择. NULL :在 C#.Java 语言中,NULL 作为一个值(引用类型字段默认初始值,注意区别 NULL.空字符串区别),代表未指向内存堆空间中任何对象(此处,就不在细讲,可以去详细了解一下基本类型.引用类型在内存堆栈上存储区别).而在数据库中,NULL 同样作为一…