ORM中的部分参数的作用

ORM中的部分参数的作用

字段参数

Meta参数

class A(models):
    pass
	class Meta:
	    managed = False
		db_table = '自己定义的表名'

managed
  由于Django会自动根据模型类生成映射的数据库表,如果你不希望Django这么做,可以把managed的值设置为False。
  由于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()

持续更新中......

原文地址:https://www.cnblogs.com/ZN-225/p/14705606.html