模型中的元类 – Django

模型中的元类 – Django

Django是一个高水平的Python Web框架,鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了Web开发的许多麻烦,因此你可以专注于编写你的应用程序,而不需要重新发明车轮。它是免费和开源的。在前进之前,也要先了解一下Django模型。

模型元基本上是你的模型类的内部类。模型Meta基本上是用来改变你的模型字段的行为,如改变订单选项,verbose_name,和许多其他选项。在你的模型中添加一个Meta类是完全可选的。为了使用模型元,你必须在你的模型中添加元类,如下图所示。

class student(models.Model):
    class Meta:
        options........

模型元选项

模型元有很多选项,你可以在其内部类元中给你的模型提供很多选项

1. abstract

如果abstract = True,这个模型将是一个抽象的基类。

class student(models.Model):
  class Meta:
      abstract = True

2. app_label

如果一个模型被定义在INSTALLED_APPS中的应用程序之外,它必须声明它属于哪个应用程序。

class student(models.Model):
  class Meta:
      app_label = 'myapp' # add app name here

3. verbose_name

verbose_name基本上是你的模型的一个可读名称。

class student(models.Model):
  class Meta:
      verbose_name = "stu" # add verbose_name  here

4. ordering

排序基本上是用来改变你的模型字段的顺序。

class student(models.Model):
  class Meta:
      ordering = [-1]

像这样添加排序[-1],它改变了降序的顺序。

5. proxy

如果我们添加proxy = True,一个子类化另一个模型的模型将被视为一个代理模型。

class Teacher(models.Model):
  pass
 
class Student(Teacher):
  class Meta:
      proxy = True

这就是我们如何能做一个代理模型。

6. permissions

创建此对象时要输入权限表的额外权限。添加、更改、删除和查看的权限是为每个模型自动创建的。

class student(models.Model):
  class Meta:
      permissions = []
    

你可以在列表内添加额外的权限。

7. db_table

我们可以通过在元类中使用db_table来覆盖表的名称。

class student(models.Model):
  class Meta:
      db_table = 'X'

这将把表的名称改为X。

8. get_latest_by

它返回表中基于给定字段的最新对象,通常用于DateField、DateTimeField或IntegerField。

class student(models.Model):
  class Meta:
      get_latest_by = "order_date"

按升序排列返回最新的order_date。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Django 教程