Django 中的 Meta 到底是什么?

问题描述 投票:0回答:3

我想简单地了解 Django 中的 Meta 类以及它们的作用。

from django.db import models

Class Author(models.Model):
    first_name=models.CharField(max_length=20)
    last_name=models.CharField(max_length=20)
    
    class Meta:
        ordering=['last_name','first_name']
python django web django-models metadata
3个回答
6
投票

Meta这个词起源于古希腊语,意思是“meta用于描述自我反思或自我引用的事物。”。特定于 Django,它是一个类,您可以在其中描述模型的某些方面。例如,默认情况下记录应如何排序、该模型的数据库表的名称是什么,等等。

关于 元选项 [Django-doc] 的文档说:

模型元数据是“任何不是字段的内容”,例如排序选项 (

ordering
)、数据库表名称 (
db_table
) 或人类可读的单数和复数名称 (
verbose_name
verbose_name_plural
)。没有任何要求,并且向模型添加类
Meta
是完全可选的。

Django 文档包含Django 模型

Meta
选项的详尽列表。例如对于
ordering
属性 [Django-doc]
:

对象的默认顺序,用于获取对象列表时使用。 (...)

这里

ordering
指定如果您查询
Author
对象,例如
Author.objects.all()
,那么如果您没有指定任何排序,Django 将首先按
Author
last_name
进行排序,并且在以下情况下领带,按
first_name
订购。


1
投票

您问的是关于两个不同事物的问题:

  1. Meta
    Django 模型中的内部类:

    这只是一个类容器,其中包含一些附加到模型的选项(元数据)。它定义了诸如可用权限、关联的数据库表名称、模型是否抽象、名称的单复数版本等。

    简短说明在这里:Django 文档:模型:元选项

    可用元选项列表位于:Django 文档:模型元选项

从这里复制的,考虑喜欢: Django的Meta类是如何工作的?

阅读本文以进一步了解


0
投票

Django 中的元类是定义其他类(例如模型和表单)行为的类。它用于提供有关类的附加信息,例如其数据库表名称、排序和其他选项。元类用于自定义 Django 模型和表单的行为。

对于 Django 5.0,您可以在以下链接中找到各种类元选项 - Django 类元官方文档

© www.soinside.com 2019 - 2024. All rights reserved.