我想简单了解Django中的元类是什么以及它们的作用。
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']
我想简单了解Django中的元类是什么以及它们的作用。
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']
元数据是一个起源于古希腊的词汇,它的意思是"用来描述自我反思或自我引用的东西。" 在Django中,它是一个类,在这个类中你可以描述你的模型的某些方面。例如,默认情况下记录应如何排序,该模型的数据库表的名称等。
元选项 [Django-doc]的文档说:
Django文档包含一个详尽的Django模型模型元数据是“不是字段”的任何内容,例如排序选项(
ordering
),数据库表名(db_table
)或可读的单数和复数名称(verbose_name
和verbose_name_plural
)。没有必要添加,将类Meta
添加到模型完全是可选的。
Meta
选项列表(链接1)。例如,对于ordering
属性(链接2):ordering
指定了如果查询Author
对象,如Author.objects.all()
,则Django将按照last_name
首先排序Author
,并在平局的情况下按first_name
排序。Django模型中的Meta内部类:
这只是一个包含一些选项(元数据)的类容器,它定义了可用的权限、关联的数据库表名、模型是否抽象等内容。该类还定义了名称的单数和复数版本。
简短的说明在这里:Django文档:Models:Meta选项
可用元选项列表在此处:Django文档:Model Meta options
从这里复制,考虑点赞: Django的Meta类是如何工作的?
Author(models.Model, metaclass=...)
)。 - Willem Van Onsem