随笔 - 18, 文章 - 0, 评论 - 4, 阅读 - 11341
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

Metaclasses

Posted on   棽棽  阅读(217)  评论(0编辑  收藏  举报

1、Metaclasses

Metaclasses是创建class(对象)的东西,它们是描述类的类,我们经常使用所理解的对象和class以及Metaclasses可以理解成以下形式:

MyClass = MetaClass()
MyObject = MyClass()

2、django模型类中的内部类meta

django模型类中的meta是一个内部类,它用于定义一些模型类的行为特征,用于设置类的元信息

定义方式如下:

class Student(models.Model):
    
    ...... #模型类的属性相关定义
    class Meta:
        ...... # Meta类的属性

3、Meta类的部分属性

(1)abstract

abstract属性定义当前的模型类是否为一个抽象类,在django模型类中一个类对应一张数据库表,而模型类中定义Meta类的abstract属性为True时,当前模型类即为一个抽象类,抽象类不会有数据库表,一般用它来归纳一些公共属性字段,继承该类的子类能够继承这些字段

class Student(models.Model):
    
    ...... #模型类的属性相关定义
    class Meta:
        abstract=True

(2)db_table

db_table指明该模型类对应的数据库表的名字,默认为应用名小写_类名小写

class Student(models.Model):
    
    ...... #模型类的属性相关定义
    class Meta:
        db_table='student'

(3)ordering

对象的默认排序字段

class Student(models.Model):
    
    ...... #模型类的属性相关定义
    class Meta:
        ordering=["id"] #按id升序
        ordering=["-id"] #按id降序

注意:排序会增加数据库的开销,相当于添加了order by

 

编辑推荐:
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· .NET Core GC压缩(compact_phase)底层原理浅谈
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
点击右上角即可分享
微信分享提示