<div id="module-unit-notification-container" hidden=""></div> <p>模型是所有 ORM 的核心。 模型是应用程序将要处理的数据的表现形式。 可以是人员、产品、类别或应用程序所需的任何其他形式的数据。</p>
讯享网
在 Django 中,模型是从 继承功能集合的任何类。 该集合包含多种方法,你可以使用这些方法来查询数据库,创建新条目以及保存更新。 还可以定义字段,设置元数据以及在模型之间建立关系。
如果想创建 和 两个模型,则需要添加两个类:
讯享网
在我们讨论如何为模型配置数据之前,需要强调的是模型属于 Python 类。 因此,你既可以添加方法,也可以覆盖 提供的或所有 Python 对象固有的方法。
尤其要强调的一种方法是 。 未指定任何字段的情况下,可以使用此方法显示对象。 如果 有 字段(稍后我们将看到),你可以通过重写 将其作为 默认字符串表示形式返回。
字段定义模型的数据结构。 字段可能包括项目名称、创建日期、价格或模型需要存储的任何其他数据片段。
不同的数据片段具有不同的数据类型、验证规则和其他形式的元数据。 Django ORM 包含一组丰富的选项,你可以根据规范使用这些选项来配置模型的字段。 ORM 是可扩展的,因此可以根据需要创建自己的规则。
所有字段的元数据的核心部分都是它将存储的数据类型,如字符串或数字。 字段类型映射到数据库类型和 HTML 表单控件类型(如文本框或复选框)。 Django 包括多个字段类型,如:
- :单行文本。
- :多行文本。
- :布尔 true/false 选项。
- :日期。
- :时间。
- :日期和时间。
- :URL。
- :整数。
- :固定精度的十进制数。
要将字段添加到 和 类,可能会使用以下代码:
讯享网
你可以使用字段选项添加允许 NULL 或空白值的元数据,或将字段标记为唯一。 还可以设置验证选项并为验证错误提供自定义消息。
与字段类型一样,字段选项会映射到数据库中的相应设置。 规则将在 Django 为你生成的任何表单中强制执行。
字段选项会传递到字段本身的函数中。 不同字段可能支持不同的选项。 常见的选项有:
-
- 允许 NULL 值的布尔选项。
- 默认值为 。
-
- 允许空白值的布尔选项。
- 默认值为 。
-
- 如果未提供字段的值,则允许配置默认值。
- 如果要将默认值设置为数据库 ,请将 设置为 。
-
- 此字段必须包含一个唯一值。
- 默认值为 。
- 和
- 与字符串类型一起用于识别最小和最大的字符串长度。
- 默认值为 。
- 和
- 与数字类型一起用于识别最小和最大的值。
- 和 。
- 与日期/时间类型一起用于指示是否应该使用当前时间。
- 始终在保存时将字段设置为当前时间,这对 字段很有帮助。
- 始终在创建时将字段设置为当前时间,这对 字段很有帮助。
要将选项添加到模型,代码如下所示:
在关系数据库中,标准做法是表中的每一行都有一个主键,通常是自动递增的整数。 Django 的 ORM 会自动将此键添加到你创建的每个模型,方法是添加一个名为 的字段。
如果要重写此行为,可以将你想使用的字段设置为主键。 但在大多数情况下,你应该依赖 Django 的 字段。
关系数据库还包含表之间的关系。 产品对应类别,员工对应经理,而汽车对应制造商。 Django 的 ORM 支持所有你想要在模型之间创建的关系。
最常见的关系是“一对多”,在技术层面上称为外键关系。 在外键关系中,多个项目共享一个特性。 例如,将多个产品分组到一个类别。 要为此关系建模,请使用 字段。
要创建关系,请将 字段添加到子对象。 如果产品被分组到多个类别,则为 类添加 属性,并将类型设置为 。
Django 自动为父级添加属性,以提供对名为 的所有子级的访问权限,其中 是子对象的名称。 在我们的示例中, 将自动添加 ,以提供对类别中所有产品的访问权限。
有一个必需参数 。 此参数向 Django 表明在删除父级时要执行的操作。 也就是说,如果我们删除类别,会对该类别的产品造成什么影响?
两种最常见的选项是:
- ,如果在示例中删除了某个类别,则将删除所有产品。
- ,如果尝试删除包含产品的某个类别,则将返回错误。
可以使用以下代码来更新模型以创建关系:
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/183051.html