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"