django 模型中的元类-ag捕鱼王app官网

django 模型中的元类

作者:迹忆客 最近更新:2024/03/16 浏览次数:

元数据是指提供有关另一个数据的信息的一组特定数据。在 django 中,我们使用 django 模型来设计我们数据库的表及其字段。如果我们必须添加一些关于模型本身的数据,我们使用 meta 类。在本文中了解有关 django 模型中 meta 类的更多信息。


django 中的 meta

meta 类是一个内部类,这意味着它在模型内部定义如下:

from django.db import models
class mymodel(models.model):
    ...
    class meta:
        ...

meta 类可用于定义有关模型的各种内容,例如权限、数据库名称、单复数名称、抽象、排序等。向 django 模型添加 meta 类是完全可选的。

此类还带有许多你可以配置的选项。以下是一些常用的元选项;你可以探索所有的元选项这里

django 元选项 - 摘要

该选项用于定义模型是否抽象;它们与抽象类的工作方式相同。抽象类是不能被实例化,只能被扩展或继承的类。

设置为抽象的模型只能被继承。如果有多个具有共同字段的模型,则可以使用此选项。

from django.db import models
class human(models.model):
    genders = (
        ("m", "male"),
        ("f", "female"),
        ("nb", "non-binary"),
        ("t", "transgender"),
        ("i", "intersex"),
        ("o", "other"),
        ("pnts", "prefer not to say"),
    )
    name = models.charfield(max_length=200)
    age = models.integerfield(default=0)
    gender = models.charfield(max_length=50, choices=genders)
    class meta:
        abstract = true  # important
class teacher(human):
    subject = models.charfield(max_length=200)
class student(human):
    grade = models.integerfield(default=0)

在这里,teacherstudent 模型将包含 human 模型内的所有字段。在数据库中,只会创建 teacherstudent 模型。

django 元选项 - db_table

此选项用于设置用于标识数据库内表的名称。例如:如果我执行以下操作,我的模型的名称将是数据库中的 job

from django.db import models
class jobposting(models.model):
    class meta:
        db_table = "job"

django 元选项 - 排序

此选项采用字符串值列表,它们是模型字段。它用于定义模型对象的排序。当检索此模型的对象时,它们将按此顺序出现。

from django.db import models
class jobposting(models.model):
    datetimeofposting = models.datetimefield(auto_now_add=true)
    class meta:
        ordering = ["-datetimeofposting"]

在上面的示例中,检索到的对象将根据 datetimeofposting 字段按降序排列。(- 前缀用于定义降序。)

django 元选项 - verbose_name

此选项用于为模型定义一个人类可读的单数名称,并将覆盖 django 的默认命名约定。此名称也将反映在管理面板 (/admin/) 中。

from django.db import models
class jobposting(models.model):
    class meta:
        verbose_name = "job posting"

django 元选项 - verbose_name_plural

此选项用于为模型定义一个人类可读的复数名称,这将再次覆盖 django 的默认命名约定。此名称也将反映在管理面板 (/admin/) 中。

from django.db import models
class jobposting(models.model):
    class meta:
        verbose_name_plural = "job postings"

上一篇:

下一篇:

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图