我想在我的元类中获取一个变量
class Meta:
abstract = True
db_table = 'bikes_table'
managed = False
我想从
self
获取一个变量,就像上面一样:
class Meta:
abstract = True
db_table = 'bikes_table' if self.customers=True else 'cars_table'
managed = False
是否可以获取变量?
正如评论中所述,表面问题是“self”在类定义时不可用,当然。
元数据中的某些字段可能具有在运行时可以更改的值,对于每个实例,这些字段将接受回调函数而不是静态值(但查看文档,似乎没有)
现在,某个Model对应的表被ORM使用,并且会在类级别进行绑定。更重要的是,因为许多处理类的查询必须发出数据库语句而没有实例,就像任何查询的情况一样。 我的意思是,在您的示例中,
vehicle.objects.all()
必须查询两个数据库表并将结果放在同一响应中。
可以通过子类化 Django 的内部 Queryset 数据库来完成,并仔细重写它以自定义方式查看“表”模型元数据,但这很容易出错。 所以,你宁愿重新考虑你的设计。 简单地拥有一个 Vehicle 基类会更容易,只需在表单和关系上使用“Vehicle”,并从中派生出 Bicycle 和 Car 类 - 只要有车辆,就可以使用汽车或自行车。 Django 通过
Genericrelations