Django models元选项Meta和模型成员使用,元选项:在模型类中定义一个Mate类,用于设置元信息
☆abstract:如果abstract = True 这个model就是一个抽象类,
一般我们用它来归纳一些公共属性字段,然后继承它的子类可以继承这些字段。
app_label
label:
label_lower:
★db_table:
db_teblespace:
get_latest_by:
managed:
order_with_respect_to:
★ordering:
ordering=['order_date'] # 按订单升序排列
ordering=['-order_date'] # 按订单降序排列,-表示降序
ordering=['?order_date'] # 随机排序,?表示随机
ordering=['-pub_date','author'] # 以pub_date为降序,在以author升序排列
permissions:
proxy:
☆unique_together:unique_together = (("first_name", "last_name"),)
★verbose_name:
★verbose_name_plural:如果不指定Django会自动在模型名称后加一个’s’
default_related_name:
default_permissions:
required_db_features:
required_db_vendor:声明模型支持的数据库。Django默认支持sqlite, postgresql, mysql, oracle
select_on_save:
indexes:
class Class(models.Model):
cname = models.CharField(max_length=20, verbose_name='班级名')
boy_num = models.IntegerField(verbose_name='男生数')
girl_num = models.IntegerField(verbose_name='女生数')
ctime = models.DateTimeField(auto_now=True, verbose_name='上课时间')
isDelete = models.BooleanField(default=0, verbose_name='是否删除')
def __str__(self):
return self.cname
class Mate:
db_table = 'class' # 用来指定数据表名称,一般使用小写,原来默认数据表名为:应用名称_类名
ordering = ['id'] # 升序排列 # 排序规则,用于数据表中对象的排序,会消耗服务器资源
# ordering = ['-id'] # 降序排列
'''模型成员
类属性:objects:是一个models中的Manager类型的对象,用于和数据库之间的交互
自定义objects:定义模型类的时候没有指定管理器,django会自动创建objects管理器
1.自定义管理器:
class Class(models.Model):
# 自定义模型管理器My_Obj
My_obj = models.Manager() # 这时候原有的objects就不存在了
cname = models.CharField(max_length=20, verbose_name='班级名')
boy_num = models.IntegerField(verbose_name='男生数')
...
'''