Django class meta
class Main(models.Model):
img = models.CharField(max_length=200) # 图片
name = models.CharField(max_length=100) # 名称
trackid = models.CharField(max_length=16) # 通用id
class Meta:
abstract = True #抽象类
class MainWheel(Main):
# 轮播banner
class Meta:
db_table = 'axf_wheel'
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
class Meta:
ordering = ['order_date']
# 按订单升序排列
以上三种class Meta是比较常用的,所以大概回顾一下。查了一些资料,才勉强搞懂。首先class Meta做为嵌套类,主要目的是给上级类添加一些功能,或者指定一些标准。
比如第一个abstract=True这个东东,是为了继承,将该基类定义为抽象类,即不必生成数据库表单,只作为一个可以继承的基类,把一些子类必须的代码放在基类,避免重复代码也避免重复录入数据库。大概是这么个意思吧?
再比如db_table='xxxx'这个东东更简单些,其实就是指定该类的数据库表单名字。当然如果不指定也没关系,Django会自动默认的按照一定规则生成数据模型对应的数据库表名。至于合不合你的意那就得看缘分了,所以自己指定往往比较好。
又比如ordering=‘xxxxx’,是表示按照指定的字段进行数据库的排序。主要是为了好看好查找。你可以指定任意的表单名称或内容,数据库生成之后就会按照指定的列进行排序。还可以升序降序随机,唉反正挺复杂的。
其实以上三种Django中model嵌套类的元数据定义,都涉及不少的知识点且有多种选择和用法。甚至这种嵌套类中可以有十几种不同的元数据定义方法,真要研究下去晕都晕死了。还好没有一个选项是必需的. 是否添加class Meta 到你的 model 完全是可选的。以后用到什么再查吧,太复杂了。我学习的不好,尽量遇到什么就搞懂什么吧。
最新文章
- document.forms用法
- Photon服务器进阶&;一个新游戏的出产(二)
- 编写一个Singleton程序(单例)
- AngularJS(17)-Angular小程序
- 六、Socket之UDP异步传输文件-实现稳定的文件传输
- C#。3 循环
- 发现SQL Server惊天大秘密!!
- Java集成开发环境--Eclipse for J2EE配置JRE运行环境
- 前端 PC端兼容性问题总结
- 从On-Premise本地到On-Cloud云上运维的演进
- 【wif系列】C#之单例模式(Singleton Pattern)最佳实践
- eclipse 部署项目
- java框架之MyBatis(1)-入门&;动态代理开发
- Laravel返回不重复的某个字段信息列表
- Linux查看系统进程
- windows命令:control命令
- BubblePopupWindow
- 别真以为JavaScript中func.call/apply/bind是万能的!
- soapUI的bug切换版本解决
- java 编写小工具 尝试 学习(一)
热门文章
- 【LeetCode】900. RLE Iterator 解题报告(Python & C++)
- Hamburger Magi(hdu 3182)
- Problem 2233 ~APTX4869
- 【C++】指针初始化
- [Xavier] Understanding the difficulty of training deep feedforward neural networks
- JSP中的九大内置对象
- IT6516DP转VGA转换器|替代台湾联阳IT6516方案|CS5212Capstone
- Java的generator工具类,数据库生成实体类和映射文件
- 使用 jQuery 操作页面元素的方法,实现浏览大图片的效果,在页面上插入一幅小图片,当鼠标悬停到小图片上时,在小图片的右侧出现与之相对应的大图片
- 什么是NaN?它的类型是什么?如何可靠的测试一个值是否等于NaN?