Django 模型中的元类
元数据是指提供有关另一个数据的信息的一组特定数据。在 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)
在这里,Teacher
和 Student
模型将包含 Human
模型内的所有字段。在数据库中,只会创建 Teacher
和 Student
模型。
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"
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串