模型中的元类——Django
Django 是一个高级Python Web 框架,它鼓励快速开发和简洁实用的设计。它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。
Check More About Django models here – Django Models
什么是模型元?
Model Meta 基本上是模型类的内部类。
Model Meta 基本上用于更改模型字段的行为,例如更改顺序选项、verbose_name 和许多其他选项。在模型中添加 Meta 类是完全可选的。
要使用模型元,您必须像这样在模型中添加类 Meta
class student(models.Model):
class Meta:
options........
模型元选项
Model Meta 有很多选项,您可以在其内部类元中为您的模型提供
1. 摘要
如果 abstract = True ,则此模型将是抽象基类
Python3
class student(models.Model):
class Meta:
abstract = True
Python3
class student(models.Model):
class Meta:
app_label = 'myapp' # add app name here
Python3
class student(models.Model):
class Meta:
verbose_name = "stu" # add verbose_name here
Python3
class student(models.Model):
class Meta:
ordering = [-1]
Python3
class Teacher(models.Model):
pass
class Student(Teacher):
class Meta:
proxy = True
Python3
class student(models.Model):
class Meta:
permissions = []
2. 应用标签
如果模型是在 INSTALLED_APPS 中的应用程序之外定义的,它必须声明它属于哪个应用程序:
蟒蛇3
class student(models.Model):
class Meta:
app_label = 'myapp' # add app name here
3. 详细名称
verbose_name 基本上是您模型的可读名称
蟒蛇3
class student(models.Model):
class Meta:
verbose_name = "stu" # add verbose_name here
4. 订购
排序基本上用于更改模型字段的顺序。
蟒蛇3
class student(models.Model):
class Meta:
ordering = [-1]
添加这样的排序 [-1] 它按降序更改顺序
5. 代理
如果我们添加 proxy = True 将另一个模型子类化的模型将被视为代理模型
蟒蛇3
class Teacher(models.Model):
pass
class Student(Teacher):
class Meta:
proxy = True
这就是我们如何制作代理模型。
6. 权限
创建此对象时输入权限表的额外权限。为每个模型自动创建添加、更改、删除和查看权限。
蟒蛇3
class student(models.Model):
class Meta:
permissions = []
您可以在列表中添加额外的权限。