迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

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"

上一篇:在 Python 中将 Tensor 转换为 NumPy 数组

下一篇:没有了

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

本文地址:

相关文章

在 Python 中将 Tensor 转换为 NumPy 数组

发布时间:2024/03/12 浏览次数:119 分类:Python

在 Python 中,可以使用 3 种主要方法将 Tensor 转换为 NumPy 数组:Tensor.numpy()函数,Tensor.eval()函数和 TensorFlow.Session()函数。

将 PIL 图像转换为 NumPy 数组

发布时间:2024/03/12 浏览次数:154 分类:Python

在 Python 中,可以使用两种主要方法将 PIL 图像转换为 3 维 NumPy 数组:numpy.array()函数和 numpy.asarray()函数。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便