Django 中的 Meta 到底是什么?

Ali*_*ang 4 python django metadata django-models web

我想简单地知道 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']
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 6

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

\n\n

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

\n\n
\n

模型元数据是“\xe2\x80\x99 不是字段的任何内容”,例如排序选项 ( ordering)、数据库表名称 ( db_table) 或人类可读的单数和复数名称 (verbose_nameverbose_name_plural)。没有一个是必需的,并且Meta向模型添加类是完全可选的。

\n
\n\n

Django 文档包含Django 模型Meta选项的详尽列表。例如对于ordering属性 [Django-doc]

\n\n
\n

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

\n
\n\n

这里ordering指定如果您查询Author对象,例如Author.objects.all(),那么如果您没有指定任何排序,Django 将首先按 s 排序Authorlast_name如果是tie,则按 排序first_name

\n