verbose_name='姓') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段要显示在修改页面中只能定义在只读字段中 (app.PersonAdmin),第二个是这个类管理的模型实例(Person) return '%s,%s' % (self.family_name, self.given_name) name.short_description = '全名' # 用于显示时的名字 , 没有这个,字段标题将显示'name' readonly_fields = ('name',) admin.site.register (Person, PersonAdmin) 补充知识:django如何在 search_fields 中包含外键字段 在search_fields中加入一个外键的名字是不能查询的,要写成(外键名__外键中的字段名 ,而不是电脑的分辨率,就可以搜索'手机 分辨率' 以上这篇django 模型中的计算字段实例就是小编分享给大家的全部内容了,希望能给大家一个参考。
定义模型: class Game(models.Model): name = models.CharField(u'游戏名称',max_length=30) gameid = models.CharField (u'游戏id',max_length=20) def __str__(self): return self.name 获取字段名和verbose_name: from django.apps 的名字 如果在view中执行get_model.filed(‘Game_app’,’Game’),那么field_dic结果为: {‘gameid’: ‘\u6e38\u620fid’, ‘id’: Forms组件 的参数配置案例 input样式, 渲染的标签加class 错误信息提示 Forms渲染出标签类型 密码型、文本型、邮箱型框 from django.forms import widgets 获取model中的字段名和字段的verbose_name方式就是小编分享给大家的全部内容了,希望能给大家一个参考。
云服务器CVM、轻量应用服务器1.5折续费券等您来抽!
1. django中的常用字段 1. AutoField 映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。 DateTimeField 日期时间类型,不仅仅可以存储日期,还可以存储时间。映射到数据库中是datetime类型。 在django中是有时区的概念的,使用时要考虑到时区的问题,默认使用的是 UTC时区,分为 navie(没时区) 和 aware(有时区),如果项目不是国际的,可以我们将时区关闭,使用本地的时间。 比如作为一个记录修改日期的字段,可以将这个属性设置为True。 auto_now_add:在每次数据第一次被添加进去的时候,都使用当前的时间。 字段中的常用属性 1. null 如果设置为True,Django将会在映射表的时候指定是否为空。默认是为False。
//下面这个函数的作用:有两点 //1、后面的是前面的注释,在rules验证的时候,如果报错,会把此处的后面的内容显示出来 //2、hint作用,即表单中用户插入数据时,提示用户该字段该填什么内容 public function attributeLabels() { return [ 'id' => 'ID',//id为数据表中的字段名,ID 为表单显示的描述 'name' => '这是用户名', 'password' => 'Password', ]; } 可以新增加个属性,设置set和get 代码如下 ,添加到模型中即可,name1是修改后的值 private $name; public function getName(){ return $this->name1; }
引言 在之前的 Django模型设计 中简单的介绍了如何定义模型类,在这篇中将做一个汇总。让大家更加了解Django模型类。 定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性 = models.字段类型(选项) 模型类的字段类型 使用时需要引入django.db.models 包 from django.db FileField FileField:上传文件字段 ImageField ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。 primary_key 若为True,则该字段会成为模型的主键字段,默认值是False。 unique 如果为True, 这个字段在表中必须有唯一值,默认值是False。 当修改模型类之后,如果添加的选项不影响表的结构,则不需要重新做迁移,属性的选项中 default 和blank 不影响表结构。
它包含了你存储的数据的重要字段和行为。通常,一个模型(model)映射到一个数据库表, 基本情况: 每个模型都是一个Python类,它是django.db.models.Model的子类。 模型的每个属性都代表一个数据库字段。 综上所述,Django为您提供了一个自动生成的数据库访问API 详询官方文档链接。 =30) last_name = models.CharField(max_length=30) first_name 和 last_name 是模型的字段。 DateField 日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。 DateTimeField 日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。
Django模型 Django的模型定义在models.py文件中。模型是MVT中的M,也相当于MVC中的M。 在Django中,模型必须继承自Model类。 ; 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为False; 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误 TimeField 时间,参数同DateField DateTimeField 日期时间,参数同DateField FileField 上传文件字段 ImageField 继承于FileField,对上传的内容进行校验 下面是另外一个模型,和前面的BookInfo模型通过外键关联起来。 ,此选项会抛出IntegrityError异常 注意:我们在数据库中,设置外键的时候需要制定另一张表中关联的字段,但是在Django里并没有指定。
中文意思:对象-关系 映射 在我们所学的Django中的MVC或MVT中的M就采用了ORM。 它的作用是实现模型对象到关系型数据库数据的映射 比如把数据库中每条记录映射为一个模型对象: ? 模型类的设计和表的生成 了解了ORM的含义,我们来体验一下Django框架中是如何具体运用的: 首先编写一个模型类 ? 这里我们有book_title和book_date两个属性。 ,它总是使用当前日期,默认为false 参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false 参数auto_now_add和auto_now 是相互排斥的,组合将会发生错误 TimeField:时间,参数同DateField DateTimeField:日期时间,参数同DateField FileField:上传文件字段 ImageField :继承于FileField,对上传的内容进行校验,确保是有效的图片 编写完我们的模型类之后,我们需要生成迁移文件: ?
定义模型 在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django ,不允许使用连续的下划线 定义属性 定义属性时,需要字段类型 字段类型被定义在django.db.models.fields目录下,为了方便使用,被导入到django.db.models中 使用方式 的datetime.datetime实例表示的日期和时间,参数同DateField FileField:一个上传文件的字段 ImageField:继承了FileField的所有属性和方法,但对上传的对象进行校验 ,确保它是个有效的image 字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null:如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False :若值为 True, 则在表中会为此字段创建索引 default:默认值 primary_key:若为 True, 则该字段会成为模型的主键字段 unique:如果为 True, 这个字段在表中必须有唯一值
django自定义管理器和model的继承 在我写代码时建立的很多数据库需要一些共同的字段,比如is_active, create_time这些字段,所以可以建立一个基类model 模型的继承 我们可以充分利用 ,是我们的代码更加pythonic 补充知识:Django中的Model中的字段属性和选项 字段类型: autoField:一个根据实际ID自动增长的IntegerField,通常不指定,如果不指定, ,用于创建的时间戳, 它总是使用当前日期,默认为 False 说明 该字段默认对应的表单控件是一个TextInput.在管理员站点添加了一个 JavaScript写的日历控件,和一个“Today” ,参数同DateField FileField: 一个上传文件的字段 ImageField:继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是一个有效的image 字段选项 概述 :通过字段选项,可以实现对字段的约束, 在字段对象中通过关键字参数指定 null:如果为True,Django将空值以NULL存储在数据库中,默认值为False blanke:如果为True,则该字段允许为空白
在官方文档中,关于字段类型的描述非常多,如下: 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误。 TimeField:时间,参数同DateField。 DateTimeField:日期时间,参数同DateField。 FileField:上传文件字段。 ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。 primary_key:若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用。 models.DateTimeField(auto_now=True) # 数据更新时间 is_delete = models.BooleanField(default=False) # 逻辑删除 添加了模型中的字段类型之后
正确的模型命名和关系字段命名。 设置适当的related_name属性。 用OneToOneField代替ForeignKeyField(unique=True)。 模型定义参考 字段 对字段名称的限制 字段名不能是Python的保留字,否则会导致语法错误 字段名不能有多个连续下划线,否则影响ORM查询操作 Django模型字段类 字段类 说明 AutoField 长度较小的字符串 DateField 存储日期,有auto_now和auto_now_add属性 DateTimeField 存储日期和日期,两个附加属性同上 DecimalField 存储固定精度小数 验证 FileField 文件上传字段 FloatField 存储浮点数 ImageField 其他同FileFiled,要验证上传的是不是有效图像 IntegerField 存储32位有符号整数。 on_delete:外键关联的对象被删除时对应的动作,可取的值包括django.db.models中定义的: CASCADE:级联删除。
模型系统的常用字段和字段参数 常用字段 AutoField:int自增列,必须填入参数 primary_key=True。 CharField:字符类型,必须提供max_length参数, max_length表示字符长度 DateField:日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date DateTimeField:日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。 None 上传图片的宽度保存的数据库字段名(字符串) DateTimeField(DateField) - 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] DateField 其他属性详情请查看:官方文档 以上这篇django模型动态修改参数,增加 filter 字段的方式就是小编分享给大家的全部内容了,希望能给大家一个参考。
在官方文档中,关于字段类型的描述非常多,如下: ? 模型字段的定义属性 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。 参数auto_now_add和auto_now是相互排斥的,组合将会发生错误。 TimeField:时间,参数同DateField。 DateTimeField:日期时间,参数同DateField。 FileField:上传文件字段。 ImageField:继承于FileField,对上传的内容进行校验,确保是有效的图片。 models.DateTimeField(auto_now=True) # 数据更新时间 is_delete = models.BooleanField(default=False) # 逻辑删除 添加了模型中的字段类型之后
ORM的优势 ORM解决的主要问题是对象和关系的映射。 类和数据库中的表对应; 类的每个实例对应表中的一条记录; 类的每个属性对应表的中每个字段。 它包含了你存储的数据的重要字段和行为。通常,一个模型(model)映射到一个数据库表, 基本情况: 每个模型都是一个Python类,它是django.db.models.Model的子类。 Django支持MySQL5.5及更高版本。 Django中ORM常用的字段和参数 常用的字段 AutoField:int自增型,必须填入参数 primary_key = True 。 DateField:日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。 ordering 这个字段是告诉Django模型对象返回的记录结果集是按照哪个字段排序的。
常用字段: 在Django中,定义了一些Field来与数据库表中的字段类型来进行映射。以下将介绍那些常用的字段类型。 AutoField: 映射到数据库中是int类型,可以有自动增长的特性。 使用这个Field可以传递以下几个参数: auto_now:在每次这个数据保存的时候,都使用当前的时间。比如作为一个记录修改日期的字段,可以将这个属性设置为True。 DateTimeField: 日期时间类型,类似于DateField。不仅仅可以存储日期,还可以存储时间。映射到数据库中是datetime类型。 这个和null是有区别的,null是一个纯数据库级别的。而blank是表单验证级别的。 db_column: 这个字段在数据库中的名字。如果没有设置这个参数,那么将会使用模型中属性的名字。 我们可以在模型中定义一个类,叫做Meta。然后在这个类中添加一些类属性来控制模型的作用。比如我们想要在数据库映射的时候使用自己指定的表名,而不是使用模型的名称。
二、模型的定义 模型可以定义储存数据的字段和值,比如我们在进行表单提交的时候,一些注册信息就可以利用模型来进行管理,然后统一提交到数据库中。简单来说,模型是与数据库有关的操作集合。 两个参数不能和默认设置同时设置 DateTimeField DateTimeInput 日期和时间,在 Python 中使用 datetime.datetime 实例表示。 max_length 的默认值为 254 。 FileField ClearableFileInput 文件上传字段。 ImageField ClearableFileInput 所有属性和方法都继承自 FileField ,此外验证上传的对象是不是有效的图像。增加了 height 和 width 两个属性。 ,你可以指定一个中介模型来定义多对多关系,可以将其它字段放在中介模型中,源模型的字段使用through参数指向中介模型。
AppConfig.verbose_name 属性用于设置该应用的直观可读的名字,此名字在Django提供的Admin管理站点中会显示, 注册模型类 登录后台管理后,默认没有我们创建的应用中定义的模型类 admin.site.register(BookInfo) admin.site.register(HeroInfo) 到浏览器中刷新页面,可以看到模型类BookInfo和HeroInfo的管理了。 配置 默认情况下,Django会将上传的图片保存在本地服务器上,需要配置保存的路径。 我们可以将上传的文件保存在静态文件目录中,如我们之前设置的static_files目录中在settings.py 文件中添加如下上传保存目录信息 MEDIA_ROOT=os.path.join(BASE_DIR 使用Admin站点上传图片 进入Admin站点的图书管理页面,选择一个图书,能发现多出来一个上传图片的字段 ?
简单介绍一下怎么在django的管理后台和用户使用网页中使用django-summernote富文本编辑器,其他富文本编辑器类似。 }), # 用于上传图片文件,也可以上传其他文件word,ppt等。 = verbose_name def __str__(self): return self.title # 文章的title 5.在admin.py中注册创建的模型; 使用命令 有了前面的设置,思路大致相同: 1.在models.py中创建带有SummernoteTextField的字段的类; class Addblog(models.Model): title=models.CharField add文章的url,即可看见用户前台富文本的效果,和前面效果相同。
django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作。 对象关系映射 把面向对象中的类和数据库表–对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成 django实现了ORM框架,在项目中与数据库之间产生桥梁作用 django数据库定义模型的步骤如下 Null,True NullBooleanField: 支持Null,True,False DateTimeField: 日期时间 FileField: 上传文件字段 ImageField: 继承与 然后开启django项目输入 http://127.0.0.1 :8000/admin/ 用户名和密码填写 登陆进去后就会看到创建的数据模型 ? 点击add可以添加一些数据 会有你写的模型类 ? django的简单项目关于模型的展示设计都完成啦!!! 总结 到此这篇关于Django中的模型类设计及展示示例详解的文章就介绍到这了,更多相关django模型类设计及展示内容请搜索ZaLou.Cn
提供抽取合同关键信息、筛查风险条款等能力,显著提升法律人员的工作效率
扫码关注腾讯云开发者
领取腾讯云代金券