Django 中的 Meta 到底是什么
What is exactly Meta in Django
我想简单地知道什么是 Django 中的 Meta class 以及它们的作用
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']
Meta 是一个源自古希腊的词,意思是“meta 用于描述自我反省或自我引用的事物。”。特定于 Django,它是一个 class,您可以在其中描述模型的某些方面。例如,默认情况下应如何对记录进行排序,该模型的数据库名称 table 是什么,等等
meta options [Django-doc] 上的文档说:
Model metadata is "anything that’s not a field", such as ordering options (ordering
), database table name (db_table
), or human-readable singular and plural names (verbose_name
and verbose_name_plural
). None are required, and adding class Meta
to a model is completely optional.
Django 文档包含 exhaustive list of Django's model Meta
options. For example for the ordering
attribute [Django-doc]:
The default ordering for the object, for use when obtaining lists of objects. (...)
这里的 ordering
指定如果你查询 Author
对象,比如 Author.objects.all()
,那么 Django 将在你没有指定任何顺序的情况下,对 Author
s 按 last_name
首先,如果 并列 ,按 first_name
.
排序
你问的是两个不同的问题:
Meta
Django 模型中的内部 class:
这只是一个 class 容器,模型附有一些选项(元数据)。它定义了诸如可用权限、关联数据库 table 名称、模型是否抽象、名称的单数和复数版本等内容。
这里有简短的解释:Django docs: Models: Meta options
可用元选项列表在这里:Django docs: Model Meta options
从这里复制,考虑喜欢:
How does Django's Meta class work?
我想简单地知道什么是 Django 中的 Meta class 以及它们的作用
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']
Meta 是一个源自古希腊的词,意思是“meta 用于描述自我反省或自我引用的事物。”。特定于 Django,它是一个 class,您可以在其中描述模型的某些方面。例如,默认情况下应如何对记录进行排序,该模型的数据库名称 table 是什么,等等
meta options [Django-doc] 上的文档说:
Model metadata is "anything that’s not a field", such as ordering options (
ordering
), database table name (db_table
), or human-readable singular and plural names (verbose_name
andverbose_name_plural
). None are required, and adding classMeta
to a model is completely optional.
Django 文档包含 exhaustive list of Django's model Meta
options. For example for the ordering
attribute [Django-doc]:
The default ordering for the object, for use when obtaining lists of objects. (...)
这里的 ordering
指定如果你查询 Author
对象,比如 Author.objects.all()
,那么 Django 将在你没有指定任何顺序的情况下,对 Author
s 按 last_name
首先,如果 并列 ,按 first_name
.
你问的是两个不同的问题:
Meta
Django 模型中的内部 class:这只是一个 class 容器,模型附有一些选项(元数据)。它定义了诸如可用权限、关联数据库 table 名称、模型是否抽象、名称的单数和复数版本等内容。
这里有简短的解释:Django docs: Models: Meta options
可用元选项列表在这里:Django docs: Model Meta options
从这里复制,考虑喜欢: How does Django's Meta class work?