模型元选项
这里讲述所有你可以给class meta 的 metadata options
可用的元选项
abstract
-
Options.
abstract
如果为True,模型将被作为抽象类。
db_table
Options.db_table
指定数据库表名。
db_table = 'music_album'
表名
为了节约时间,django会自动获取模型名和模型所在应用程序名来命名表名。
例如你有一个bookstore 的应用程序(manage.py startapp bookstore创建),一个名为Book的模型,那么默认生成的表名为bookstore_book
db_tablespace
Options.db_tablespace
模型的表空间命名,如果后端接口不支持,这个参数会被忽略。
get_latest_by
Options.get_latest_by
模型里日期或日期时间字段的名字.这是为你的model Manager's 提供默认的 latest 方法
例如
get_latest_by = "order_date"
order_with_respect_to
Options.order_with_respect_to
把给定的字段标志为可排序的,这个基本上都用在关系对象上根据父类排序. 例如, 一个答案关联到一个问题, 一个问题有多个答案,对答案排序, 你可以这样:
class Answer(models.Model):
question = models.ForeignKey(Question)
# ...
class Meta:
order_with_respect_to = 'question'
ordering
Options.ordering
默认的排序列, 当获取列表时会使用:
ordering = ['-order_date']
“-”相当DESC “?”是随机排序
多列排序ordering = ['-pub_date', 'author']
permissions
Options.permissions
权限设置
permissions = (("can_deliver_pizzas", "Can deliver pizzas"),)
unique_together
Options.unique_together
多列唯一约束
unique_together = (("driver", "restaurant"),)
verbose_name
Options.verbose_name
模型的标签名:
verbose_name = "pizza"
如果没有指定,默认使用模型的名字
verbose_name_plural
Options.verbose_name_plural
标签名的复数
verbose_name_plural = "stories"
如果未指定,默认为verbose_name + "s".