Django model中的Class Meta

1.Meta元数据
代码示例:

class Foo(models.Model): 
    bar = models.CharField(maxlength=30)

    class Meta: 
        # ...

Meta元数据的作用是,表明“不是一个字段”,比如排序项等。
下面列出了所有的Meta选项

2.app_label
指明model实体,对应的应用,默认为当前应用

app_lable = 'myapp'

3.table_name
指定自定义数据库表明,默认会使用app_label+'_'+model_name作为表名

table_name = 'my_table'

4.db_tablespace
指明数据库表空间

5.get_latest_by
django管理方法中有个lastest()方法,就是得到最近一行的记录。
通过这个选项,可以定义使用哪个字段

get_latest_by = "order_date"

6.managed
django会自动根据模型类生成映射的数据库表,将managed设为False,则不会对数据库表进行操作。

7.order_with_respect_to
这个选项一般用于多对多的关系中,它指向一个关联对象。就是说关联对象找到这个对象后它是经过排序的。

order_with_respect_to = 'pizza'

8.ordering
指定模型对象返回的结果集,按照哪个字段排序的

# 按order_date降序,再按author升序
ordering = ['-order_date', 'author']

9.permissions
指定model的管理权限(增删改查)

permissions = (("can_deliver_pizzas","can deliver pizzas"),)

10.unique_together
当需要两个或以上字段保持唯一性时

unique_together = (("first_name", "last_name"),)

11.verbose_name
模型别名

verbose_name = "pizza"

12.verbose_name_plural
模型复数别名

verbose_name_plural = "pizzas"

posted on 2018-05-17 19:14  迪米特  阅读(570)  评论(0编辑  收藏  举报

导航