ORM中的部分参数的作用
ORM中的部分参数的作用
字段参数
Meta参数
class A(models):
pass
class Meta:
managed = False
db_table = '自己定义的表名'
managed
由于Django会自动根据模型类生成映射的数据库表,如果你不希望Django这么做,可以把managed的值设置为False。
默认值为True,这个选项为True时Django可以对数据库表进行 migrate或migrations、删除等操作。在这个时间Django将管理数据库中表的生命周期。
如果为False的时候,不会对数据库表进行创建、删除等操作。可以用于现有表、数据库视图等,其他操作是一样的。
db_table
db_table是用于指定自定义数据库表名的。Django有一套默认的按照一定规则生成数据模型对应的数据库表名,如果你想使用自定义的表名,就通过这个属性指定。
abstract
这个属性是定义当前的模型类是不是一个抽象类。
所谓抽象类是不会生成相应数据库表的。
一般我们用它来归纳一些公共属性字段,然后继承它的子类能够继承这些字段。
比方以下的代码中Human是一个抽象类。Employee是一个继承了Human的子类,那么在执行数据迁移命令时,不会生成Human表,可是会生成一个Employee表,它包括了Human中继承来的字段。
然后, 假设再加入一个Customer模型类,它能够相同继承Human的公共属性:
class Human(models.Model):
name=models.CharField(max_length=100)
GENDER_CHOICE=((u'M',u'Male'),(u'F',u'Female'),)
gender=models.CharField(max_length=2,choices=GENDER_CHOICE,null=True)
class Meta:
abstract=True
class Employee(Human):
joint_date=models.DateField()
class Customer(Human):
first_name=models.CharField(max_length=100)
birth_day=models.DateField()
持续更新中......