如何解决DJANGO-类Meta / varibales db_table
我想在我的元类中获取一个变量
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
是否有可能获取变量? 谢谢
解决方法
如评论中所述,表面问题是,当然,在类定义时“自我”将不可用。
元数据中的某些字段可能具有在运行时更改的值,对于每个实例,这些字段将接受回调函数而不是静态值(但在文档中似乎没有)
现在,ORM使用与某个Model对应的表,并将其绑定到类级别。令人怀疑的是,因为与类有关的许多查询都必须发出没有实例的数据库语句,就像任何 query 一样。我的意思是,在您的示例中,vehicle.objects.all()
必须查询两个数据库表并将结果汇总到相同的响应中。
可以通过子类化Django内部Queryset数据库,并仔细地重写它以自定义方式查看“表”模型元数据来完成,但这很容易出错。 >
因此,您宁愿重新考虑您的设计。简单地具有“车辆”基础类,仅在表格和关系上使用“车辆”,并从中派生“自行车”和“汽车”类,就更容易了-可以在任何车辆可以使用的地方使用汽车或自行车。 Django通过Generic Relations
为关系本身提供支持版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。