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

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

注:数据参考来源w3cschool 上面的字段很容易让人想起数据库中数据类型,所以这些字段也就会有约束,常用约束如下: null:字段是否可以为空 blank:是否允许用户输入空 db_column...help_text: 字段提示信息 choices:显示选择内容,用不变动数据放在内存中以避免跨表操作 verbose_name: 显示字段名称 error_messages:自定义错误信息...(字典类型) validators:自定义错误验证(列表类型) 注:数据参考来源w3cschool 四、关联关系 django提供了三种数据库关联关系,即多对一,一对一,多对多,废话不多说,就是干。...1.多对一 因为是关联关系,所以我们必须指定两个类来进行相互操作,这里涉及到一个操作,即ForeignKey字段,而且要定义在多一方。...=None # 自定义第三张表时,使用字段用于指定关系表中那些字段做多对多关系表 db_constraint=True # 是否在数据库中创建约束

2.1K00

37.Django1.11.6文档

当使用字符串时,所有的选择框都带有这个空选项。 如果tuple 具有3个字符串元素list 或empty_label,每个选择框将具有它们自定义空选项。 ...根据您需求,包含相关字段自定义用户模型可能是您更好选择,但是,与项目应用程序中默认用户模型现有关系可能有助于额外数据库加载。...此方法将返回当前活动用户模型 — 如果指定了自定义用户模型,否则返回User。 在定义到用户模型或多对多关系时,应使用AUTH_USER_MODEL设置指定自定义模型。 ...指示用户账号是否激活。 我们建议您将此标志设置False而不是删除帐户;这样,如果您应用程序对用户有任何,则不会中断。 它不是用来控制用户是否能够登录。 ...方法允许覆盖字段默认窗体字段

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

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

在这个表单中,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的关系展示一个select框。...点击它,会弹出一个新增Question表单,类似Question自己添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联对象。...通俗讲就是,新建一个Question并作为当前Choice。 但是,实话说,这种创建方式效率不怎么样。...自定义修改列表 现在Question管理页面看起来已经差不多了,下面来看看修改列表页面,也就是显示了所有question页面,即下图这个页面: ?...(运行Web服务器用户即是运行Django用户)。然而,但是作为一个好习惯,最好把模板放在本项目目录下。

3.6K60

django 1.8 官方文档翻译: 3-4-3 使用基于类视图处理表单

使用基于类视图处理表单 表单处理通常有3 个步骤: 初始GET (空白或预填充表单) 带有非法数据POST(通常重新显示表单和错误信息) 带有合法数据POST(处理数据并重定向) 你自己实现这些功能经常导致许多重复样本代码...如果你想使用一个自定义ModelForm(例如添加额外验证),只需简单地在你视图上设置form_class。...Changed in Django 1.8: 省略fields 属性在以前是允许,但是导致表单带有模型所有字段。...首先,向模型添加关联: #models.py from django.contrib.auth.models import User from django.db import models class...在这个视图中,请确保你没有将created_by 包含进要编辑字段列表,并覆盖form_valid() 来添加这个用户: #views.py from django.views.generic.edit

1.8K20

Django model 层之Models与Mysql数据库小结

因为,默认Django每个模块设置一个field: id = models.AutoField(primary_key=True) 如果想自己指定一个自定义主键列,则必须按上述设置,显示指定字段名称...,所以,即便显示字段提供了值,也会自动忽视显示设定值。...field值当前日期时间,所以,即便显示字段提供了值,也会自动忽视显示 该field对应默认表单组件:TextInput。...myapp_album.artist列引用mapp_musician.auto_id字段值,即mapp_musician.auto_idmyapp_album表。...SET_DEFAULT 删除被参照表某条表记录,设置参照表中,同待删除记录存在外关联记录列值默认值。必须列设置默认值。

2.2K20

Django admin 一些有用设置

设置显示字段      fk_fields = ('machine_room_id',) 此处比较简单,自己尝试一下即可。...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是需要遵循这样语法:本表字段__表要显示字段。...9.自定义列表字段 上面的一对多和多对多可以数据编辑中显示,但在列表中没有显示。有时还需要显示一些其他东西。例如两个字段相乘计算结果等等。这些都可以通过自定义列表字段处理和显示。...可以通过自定义列表字段显示。如下设置admin: ?...blog.tags.all())         return ', '.join(tag_names) 通过自定义列表字段,获取相关数据再列表显示,效果如下: ?

2.5K70

django自定义非主键自增字段类型详解(auto increment field)

1.django自定义字段类型,实现非主键字段自增 # -*- encoding: utf-8 -*- from django.db.models.fields import Field, IntegerField...,这个字段可以是主键,也可以不是主键,如果不是主键,则必须设置一种“(key)” # (primary key)也是(key)一种,key还包括(foreign key)、唯一(unique...) 应用场景: 一对多:当一张表中创建一行数据时,有一个单选下拉框(可以被重复选择) 例如:创建用户信息时候,需要选择一个用户类型【普通用户】【金牌用户】【铂金用户】等。...null(前提FK字段需要设置可空) - models.SET_DEFAULT,删除关联数据,与之关联值设置默认值(前提FK字段需要设置默认值) - models.SET,删除关联数据, a....,使用字段用于指定关系表 through_fields=None, # 自定义第三张表时,使用字段用于指定关系表中那些字段做多对多关系表 from django.db import models class

2.2K10

后端框架学习-Django

模型类-字段选项: 创建列额外信息 primary_key:设置True,则为主键,此数据库表不会创建id字段 blank:设置True,则字段可以为空,控制是Admin后台提交,和mysql...models.PROTECT:保护删除,等同于mysql默认RESTRICT SET_NULL:保留关联数据,设置NULL SET_DEFAULT:将设置默认值。...创建一对一数据 无模型类,和之前相同 有模型类: wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例...)) wife = Wife.objects.create(name=’王夫人’,author_id = 1(类属性字段绑值)) 一对一查询 正向查询:从查对象 反向查询:从对象查 调用反向属性查询到关联一方...无模型类,和之前相同 有模型类: 类似上面 wife = Wife.objects.create(name=’王夫人’,author = author1(类属性名称绑实例)

9.3K40

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

2.1 ForeignKey 1) on_delete 在 Django 2.0 中,设置时需要添加一个 on_delete选项。本身涉及到两个表数据,况且在数据库中是有约束行为。...SET_NULL: 置空模式,删除时候,字段被设置空,前提就是`blank=True, null=True`,定义该字段时候,允许空。...SET_DEFAULT: 置默认值,删除时候,字段设置默认值,所以定义时候注意加上一个默认值。 SET(): 自定义对应实体值。...2)limit_choices_to 该参数用于限制所能关联对象,只能用于 Django ModelForm(Django表单模块)和 admin 后台,对其它场合无限制功能。...如果用户没有定义该选项, Django会自动将自动创建,内容是该字段属性名中下划线转换为空格结果。

2K30

Django admin管理工具使用、定制及源码解析

#fk_fields 设置显示字段 fk_fields = ('machine_room_id',) 此处比较简单,自己尝试一下即可。...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是需要遵循这样语法:本表字段__表要显示字段。...9.自定义列表字段 在DataPaperStore模型中有 end_date 字段,如果当前时间大于end_date 是我们想显示一个“已过期”,但admin列表显示不能直接用该字段,也显示不出来。...此时可以通过自定义列表字段显示。...最终生成结果就是可以选择所有的省,也可以选择所有的市,这并不合理,正确应该是在选择某个省时候在市下拉列表里只有该省城市。 而,django原生并不能做到这么智能。

4K40

django 1.8 官方文档翻译: 2-1-3 元选项 (初稿)

如果你需要修改这一默认行为,创建中介表作为显式模型(设置managed),并且使用ManyToManyField.through自定义模型创建关联。...每个字符串是一个字段名,前面带有可选“-”前缀表示倒序。前面没有“-”字段表示正序。使用”?”来表示随机排序。...你向ordering属性添加每个字段都会产生你数据库开销。你添加每个也会隐式包含它默认顺序。...你可以自定义这个列表,比如,如果你应用不需要默认权限中任何一项,可以把它设置成空列表。在模型被migrate命令创建之前,这个属性必须被指定,以防一些遗漏属性被创建。...Django 1.7中修改: 为了方便起见,处理单一字段集合时,index_together可以是一个一维列表

79530

35.Django2.0文档

M:数据存取部分,由django数据库层处理,本章要讲述内容。   V:选择显示哪些数据要显示以及怎样显示部分,由视图和模板处理。   ...这个类是自定义管理工具关键,其中最基本一件事情是允许你指定列表字段。  ...我们只自定义了一项:list_display,它是一个字段名称元组,用于列表显示。当然,这些字段名称必须是模块中有的。...filter_horizontal和filter_vertical选项只能用在多对多字段上, 而不能用于ForeignKey字段。 默认地,管理工具使用`` 下拉框`` 来展现`` `` 字段。...解决这个问题办法是使用`` raw_id_fields`` 选项。它是一个包含字段名称元组,它包含字段将被展现成`` 文本框`` ,而不再是`` 下拉框`` 。

11.2K100

自定义 DjangoUser Model,扩展 AbstractUser类注意事项

使用settings.AUTH_USER_MODEL 自从django 1.5之后, 用户可以自定义User model了, 如果需要使用user model, 官方推荐方法如下: 在settings...User(例如:通过一个引用它),你代码将不能工作。...get_user_model   User = get_user_model() 当你定义一个或者到用户模型多对多关系是,你应该使用AUTH_USER_MODEL设置来指定自定义模型。...3.指定自定义用户模型 3.1 Django 期望你自定义 User model 满足一些最低要求: 模型必须有一个唯一字段可被用于识别目的。...然而,你也需要覆写一些django.contrib.auth.models.AbstractUser 字段定义不在你自定义用户模型中

5.8K20

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

准备工作 创建管理员用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...控制显示列,Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...None,一个空字符串,或者一个没有元素可迭代字段Django显示 - (破折号)。   ...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括字段(注意list_display是不能直接接收字段),会将对应字段值列出来,一般用于快速过滤有重复值字段...例如,如果 search_fields 设置 ['first_name', 'last_name'],用户搜索 john lennon',Django 会做相当于这个 SQL WHERE 子句。

1.3K30

django 1.8 官方文档翻译: 3-4-2 内建显示视图

此外,有问题模型可以作为一个额外参数传递到URLconf中。 Django通过通用视图来完成下面一些功能: 单一对象展示列表和一个详细页面。...当你处理 一个object或者queryset时,Django能够使用你定义对象显示自述名(verbose name,或者复数自述名,对于对象列表)来填充上下文(context)。...要在你自己想要改变上下文类中保持这一行,你应该确保在超类中调用了get_context_data。如果没有任意两个类尝试定义相同,会返回异常结果。...我们可能想要对图书列表按照出版日期进行排序来选择一个简单例子,并且把 最近放到前面: from django.views.generic import ListView from books.models...类,当然不知道关于这个字段事情,但我们可以很容易 再次编写一个自定义视图,来保持这个字段更新。

1.4K40

Django之Model操作数据库详解

verbose_name Admin中显示字段名称 blank Admin中是否允许用户输入空 editable Admin中是否可以编辑...help_text Admin中该字段提示信息 choices Admin中显示选择内容,用不变动数据放在内存中从而避免跨表操作 如:gf...=2) #创建书出版社信息,其与出版社关系为一对多,所以用 publish = models.ForeignKey(Publish) #创建书出版日期...")#作者指定Author这张表做为 book=models.ForeignKey("Book")#书籍指定Book这张表做为 author_obj=models.Author.objects.filter...如果指定字段,每个字典将只包含指定字段/值。如果没有指定字段,每个字典将包含数据库表中所有字段和值。

7K10

django 1.8 官方文档翻译: 2-6-4 数据库访问优化

如果这些还不够强大: 使用原始SQL 编写你自己自定义SQL语句,来获取数据或者填充模型。...使用django.db.connection.queries来了解Django你编写了什么,以及从这里开始。...不要获取你不需要东西 使用QuerySet.values()和values_list() 当你仅仅想要一个带有字典或者列表,并不需要使用ORM模型对象时,可以适当使用values()。...另外,当建立起一个带有延迟字段模型时,要意识到一些(小额外)消耗会在Django内部产生。...直接使用值 如果你仅仅需要当中一个值,要使用对象上你已经取得值,而不是获取整个关联对象再得到它主键。

1.1K30

Django 3.1 官网学习路线

字段还可以有各种可选参数;在本例中,我们将投票默认值设置 0。 最后,请注意使用定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 关系是通过约束来显式。...“添加选择”表单如下所示: 在该表单中,“Question”字段是一个选择框,包含数据库中每个问题。Django 知道一个应该在管理中表示一个框。在我们例子中,目前只存在一个问题。...默认情况下, 3 个选项提供足够字段。” 加载“添加问题”页面,看看是什么样子: 不过有一个小问题。它需要大量屏幕空间来显示用于输入相关选择对象所有字段。...使用表格内联(而不是 StackedInline),相关对象将以更紧凑、基于表格格式显示自定义管理员更改列表 现在问题管理页面看起来不错了,让我们对“更改列表”页面做一些调整——这个页面显示系统中所有问题

8.1K10

django 1.8 官方文档翻译:2-1-1 模型语法

Django 自带数十种内置字段类型;完整字段类型列表可以在模型字段参考 中找到。如果内置类型仍不能满足你要求,你可以自由地编写符合你要求字段类型; 详见编写自定义模型字段。...choices 由二元组组成一个可迭代对象(例如,列表或元组),用来给字段提供选择项。...help_text 表单部件额外显示帮助内容。即使字段不在表单中使用,它对生成文档也很有用。 primary_key 如果True,那么这个字段就是模型主键。...中介模型有一些限制: 中介模型必须有且只有一个到源模型(上面例子中Group),或者你必须使用ManyToManyField.through_fields 显式指定Django 应该使用。...Changed in Django 1.7: 在Django 1.6 及之前版本中,中介模型禁止包含多于一个

4.9K20
领券