首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django模型

verbose_name = '图书' # admin站点中显示的名称 注意 模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名,一般我们会通过... 这个东西,通常都是在业务逻辑层面来实现的,而不是在数据库实现。但是通常大家学习的数据库课程,都会有数据库设计范式,其中有个第三范式就是专指的约束。在这里只是简单的介绍一下。...choices参数就是从我们定义的二元组(GENDER_CHOICES)获取值。二元组的第一个会储存在数据库,而第二个将只会用于表单显示。...的常用可以如下: CASCADE级联,删除主表数据时连通一起删除外数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被应用的数据 SET_NULL设置为NULL...,此选项会抛出IntegrityError异常 注意:我们在数据库,设置的时候需要制定另一张表关联的字段,但是Django里并没有指定。

1.9K20

django开发】知识经验总结共50页md文档。今日分享:django配置和数据库操作详解

作用:修改代码文件,程序自动重启Django程序出现异常时,向前端显示详细的错误追踪信息,例如而非调试模式下,仅返回Server Error (500)注 意:部署线上运行的Django不要运行在调式模式下...AppConfig.verbose_name 属性用于设置该应用的直观可读的名字,此名字Django提供的Admin管理站点中会显示,如 from django.apps import AppConfigclass...会自动创建属性名为id的自动增长属性BooleanField布尔字段,为True或FalseNullBooleanField支持Null、True、False三种CharField字符串,参数max_length...,默认是Falsenull 是数据库范畴的概念,blank是表单验证范畴的6 ) 设置时,需要通过 on_delete 选项指明主表删除数据时,对于引用表数据如何处理,django.db.models...包含了可选常量:CASCADE 级联,删除主表数据时连通一起删除外数据PROTECT 保护,通过抛出 ProtectedError 异常,来阻止删除主表中被应用的数据SET_NULL 设置为

19810
您找到你想要的搜索结果了吗?
是的
没有找到

关于“Python”的核心知识点整理大全59

下面来修改模型Topic,在其中添加一个关联到用户的。这样做后,我们必须对数据库 进行迁移。最后,我们必须对有些视图进行修改,使其只显示与当前登录的用户相关联的数据。 1....添加了字段owner,建 立到模型User的关系。...输出列出了三个用户:ll_admin、ericwillie。 3处,我们遍历用户列表,并打印每位用户的用户名ID。...Django询问要将既有主题关联 到哪个用户时,我们将指定其中的一个ID。 3. 迁移数据库 知道用户ID后,就可以迁移数据库了。...3处,Django给我 们提供了两种选择:要么现在提供默认,要么退出并在models.py添加默认4处,我们 选择了第一个选项,因此Django让我们输入默认(见5)。

10810

Django 3.1 官网学习路线

我们将很快看到,它不仅用于数据库架构,而且用于验证。 字段还可以有各种可选参数;本例,我们将投票的默认设置为 0。 最后,请注意使用定义了关系。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 关系是通过约束来显式的。...不要担心可延期的部分;告诉 PostgreSQL 事务结束之前不要强制执行。...更改,重新加载页面并检查正确的出现。 通过点击“今天”“现在”快捷更改“发布日期”。然后点击“保存并继续编辑”。然后点击右上角的“历史”。...“添加选择”表单如下所示: 该表单,“Question”字段是一个选择框,包含数据库的每个问题。Django 知道一个应该在管理中表示为一个框。我们的例子,目前只存在一个问题。

8.1K10

Django篇(一)

DjangoDjango把控制器变成了Template,其实是一样的,就是名字不一样了,他把自己的模式叫做MVT。 不同的是:V变成了MVCC的功能相同,TMVC的V功能相同。...') 多表联查有个,我们通过来查询 通过第一张表查询第二张表 s1 = student.objects.get(id = 1) # 这样就查询到 nid = 1 的person的表了,表名后加...查询到stuname 添加第二张表 s1 = student.objects.get(id = 1) p2 = person() p2.name = '小花' # 需要赋值一个对象 p2.sid...= s1 # 查询键值 赋值是一个对象,那我们怎么查询到id?...p3 = person.objects.get(id = 1) # 这样才能查询到id字典名后加_id p3.nid_id 后台管理(adminDjango给我们提供了很快生成后台的管理页面。

1K30

Django之ORM数据库

一对一:实质就是主外(author_id就是foreign key)的关系基础上,给加了一个UNIQUE=True的属性;              一对多:就是主外关系;(foreign key...(如何处理关系的字段如一对多的publisher多对多的authors) #一对多(ForeignKey): #方式一: 由于绑定一对多的字段,比如publish,存到数据库的字段名叫...的名称是聚合的 标识符,是计算出来的聚合的名称是按照字段聚合函数的名称自动生成出来的。...返回。即在查询集上生成聚合。 F查询Q查询 仅仅靠单一的关键字参数查询已经很难满足查询要求。...的配置 admindjango强大功能之一,它能共从数据库读取数据,呈现在页面,进行管理。

2.5K10

后端框架学习-Django

一个模型类代表数据库的一张数据表 模型类每一个类属性都代表数据库的一个字段 模型是数据交互的接口,是表示操作数据库的方法方式。...创建一对一数据 无的模型类,之前相同 有的模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑)) 一对一查询 正向查询:从查对象 反向查询:从对象查 调用反向属性查询到关联的一方...一对多查询 核心:正向属性(authors)反向属性(book_set) 多表上设置,关联一表。...无的模型类,之前相同 有的模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)

9.3K40

【Python全栈100天学习笔记】Day41 Django深入理解框架

字段属性primary_key用于设置主键,max_length用来设置字段的最大长度,db_column用来设置数据库与字段对应的列,verbose_name则设置了Django后台管理系统该字段显示的名称...通用字段属性 选项 说明 null 数据库对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组的第一个是设置模型上的...db_constraint:是否为创建约束,默认为True。...on_delete:关联的对象被删除时对应的动作,可取的包括django.db.models定义的: CASCADE:级联删除。...SET_NULL:把设置为null,当null属性被设置为True时才能这么做。 SET_DEFAULT:把设置为默认,提供了默认才能这么做。

2.2K30

Django 学习笔记之模型高级用法(上)

IntegerField Django 所有支持的数据库,合法取值范围是 -2147483648 到 2147483647。...所以的取值范围不能为负数零了。 1.3 时间类型 DateField DateTimeField 的两个重要属性 auto_now auto_now_add 默认都是 Flase。...2.1 ForeignKey 1) on_delete Django 2.0 ,设置时需要添加一个 on_delete选项。本身涉及到两个表的数据,况且数据库是有约束行为。...SET_DEFAULT: 置默认,删除的时候,字段设置为默认,所以定义的时候注意加上一个默认。 SET(): 自定义对应的实体的。...2)limit_choices_to 该参数用于限制所能关联的对象,只能用于 Django 的 ModelForm(Django的表单模块) admin 后台,对其它场合无限制功能。

2K30

【云+社区年度正文】Django从入门到精通No.2----模型

二、模型的定义 模型可以定义储存数据的字段,比如我们进行表单提交的时候,一些注册信息就可以利用模型来进行管理,然后统一提交到数据库。简单来说,模型是与数据库有关的操作集合。...1.多对一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个的操作,即ForeignKey字段,而且要定义多的一方。...=None,# 反向操作时,使用的连接前缀,用于替换【表名】 limit_choices_to=None, # Admin或ModelForm显示关联数据时,提供的条件,字典类型...db_constraint=True # 是否在数据库创建约束 parent_link=False # Admin是否显示关联数据 2.多对多 多对多的表...db_constraint=True # 是否在数据库创建约束 db_table=None # 默认创建第三张表时,数据库中表的名称

2.1K00

Django3.2边学边记—Adimn站点管理

(admin.ModelAdmin):    list_per_page = 20 操作选项的位置   由action_on_bottom action_on_top两属性来控制 默认显示顶部,...默认分别为:False True,改为只显示底部: 1234 class TestAdmin(admin.ModelAdmin):    list_per_page = 20    actions_on_bottom...list_display = ['id','title','pub_date']   或者模型方法,要求方法有返回,如下在模型类定义一个方法  1234 class TestInfo(models.Model... = 'unknown' 以上通过指定方法属性来控制显示是新老版本通用的,Django3.2可以通过给装饰器传参来解决:   model.py: 1234567891011121314151617...是不能直接接收字段的),会将对应字段的列出来,一般用于快速过滤有重复的字段。

1.3K30

【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

verbose_name = '图书' # admin站点中显示的名称 def __str__(self): """定义每个数据对象的显示信息"""...不指定时Django会自动创建属性名为id的自动增长属性 BooleanField 布尔字段,为True或False NullBooleanField 支持Null、True、False三种 CharField...这个字段必须有唯一,默认是False null是数据库范畴的概念,blank是表单验证范畴的 6) 设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理...,django.db.models包含了可选常量: CASCADE级联,删除主表数据时连通一起删除外数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被应用的数据...1)生成迁移文件 python manage.py makemigrations 2)同步到数据库 python manage.py migrate 总结 django开发模型类字段最好在代码里定义迁移同步到数据库

1.4K20

django 1.8 官方文档翻译: 1-2-1 编写你的第一个Django应用,第1部分

按照惯例,Django 会在外字段名上附加 “_id” 。 ( 是的,你仍然可以重写此行为。) 关系由 REFERENCES 语句显示声明。...这些 sql 命令其实并没有在你的数据库运行过 - 只是屏幕上显示出来,以便让你了解 Django为什么样的 SQL 是必须的。...请注意这可能会显示 "1L" 而不是 "1",取决于 # 你正在使用的数据库。 这没什么大不了的,只是意味着你的数据库后端 # 喜欢返回的整型数作为 Python 的长整型对象而已。...>>> p.id 1 # 通过 Python 属性访问数据库的列。 >>> p.question "What's new?"...Django 创建了 # 一个保存关联关系的集合 ( 例如 poll 的 choices) 以便可以通过 API # 去访问。

95820

Django 1.10文文档-第一个应用Part7-自定义管理站点

在这个表单,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Djangoadmin站点中,自动地将所有的关系展示为一个select框。...我们的例子,目前只有一个question对象存在。 请注意图中的绿色加号,连接到Question模型。每一个包含关系的对象都会有这个绿色加号。...点击,会弹出一个新增Question的表单,类似Question自己的添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice的关联对象。...如果我们想要同时显示一些别的内容,可以使用list_display属性,它是一个由多个字段组成的元组,其中的每一个字段都会按顺序显示页面上,代码如下: # polls/admin.py class...自定义管理站点外观 很明显,每一个admin页面坐上顶端都显示Django 管理”是感觉很荒诞,仅仅是个占位文本。利用Django的模板系统,可以易修改

3.6K60

关于“Python”Django 管理网站的核心知识点整理大全52

我们需要告诉Django,默认应使用哪个属性显示有关主题的信息。Django调用方法 __str__()来显示模型的简单表示。...在这里,我们编写了方法__str__(),返回存储属性text 的字符串(见3)。...向管理网站注册模型 Django自动管理网站添加了一些模型,如UserGroup,但对于我们创建的模型,必须 手工进行注册。...是一个数据库术语,引用了数据库的另一条记录;这些代码将每个条目关联 到特定的主题。每个主题创建时,都给它分配了一个(或ID)。...Meta存储用于管理模型的额外信息,在这里,让 我们能够设置一个特殊属性,让Django需要时使用Entries来表示多个条目。如果没有这个类, Django将使用Entrys来表示多个条目。

13210

Django—入门

ORM框架帮我们把类和数据表进行了一个映射,可以让我们通过类类对象就能操作它所对应的表格的数据。...我们之后迁移生成表的时候,Django框架就会自动帮我们图书表英雄表之间建立一个关系。 最后我们可以看到数据库中生成的英雄表如下图: ?...注意上图中booktest_heroinfo表中有一列hbook_id,这一列名为什么不叫hbook? hbook_id是根据HeroInfo类的关系属性hbook生成的,对应着图书表的主键id。...4.自定义管理页面 列表页只显示出了BookInfo object,对象的其它属性并没有列出来,查看非常不方便。 Django提供了自定义管理页面的功能,比如列表页要显示哪些。...属性list_display表示要显示哪些属性 class BookInfoAdmin(admin.ModelAdmin): list_display = ['id', 'btitle',

1.8K10

Django 1.10文文档-第一个应用Part2-模型管理站点

在这个投票应用,我们将创建两个模型: QuestionChoice。Question对象具有一个question_text(问题)属性一个publish_date(发布时间)属性。...这不仅在数据库模式中使用,而且验证中使用。 Field还可以有各种可选参数;在上例,我们将votes的默认设置为0。 最后,使用ForeignKey定义关系。...(你也可以重写这个行为); 按照惯例,Django会在外的字段名后面添加 "_id"。(你依然可以重写这个行为); 关系由FOREIGN KEY约束显式声明。...不用在意DEFERRABLE部分;只是告诉PostgreSQL直到事务的最后再执行关联; 这些SQL语句是针对你所使用的数据库定制的,所以会为你自动处理某些数据库所特有的字段例如auto_increment...处理字段名的引号时也是如此 —— 例如,使用双引号还是单引号; sqlmigrate命令并不会在你的数据库上真正运行迁移文件 —— 只是把Django 认为需要的SQL打印屏幕上以让你能够看到

2.2K60

DjangoORM操作

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构字段 使用 MySQLdb...,其主要目的是为了封装底层SQL语句; 1、字符串类(以下都是在数据库本质都是字符串数据类型,此类字段只是Django自带的admin中生效) name=models.CharField(max_length...: def db_type(self, connection): return 'integer UNSIGNED' PS: 返回为字段在数据库属性...=6, publish_id=6) 2、类实例化:obj=类(属性=X,=obj)obj.save() classify_obj=models.Classify.objects.get...字段就建在子表; 如果B表的1条记录也对应A表N条记录,两表之间就是双向1对多关系,也称为多对多关系; orm设置如果 A表设置了字段user=models.ForeignKey('UserType

4.7K10
领券