Peewee 元类继承
Posted
技术标签:
【中文标题】Peewee 元类继承【英文标题】:Peewee Meta class inherence 【发布时间】:2021-05-01 12:29:27 【问题描述】:我正在努力解决以下问题:
from my_db_definition import db
from peewee import *
class A(Model):
class Meta:
database=db
table_name = 'random'
class B(A):
pass
运行时
print(A._meta.table_name)
print(B._meta.table_name)
random
b
我现在的问题是,为什么在这种情况下更改了表名,这可以防止吗?我完全糊涂了
【问题讨论】:
【参考方案1】:http://docs.peewee-orm.com/en/latest/peewee/models.html#model-options-and-table-metadata
文档列出了哪些选项是继承的,哪些不是。
只有某些属性通过内部“元”类传递给子类。它的目的是 1) 命名空间,以及 2) 围绕 DRY 代码提供约定。
表名没有被继承,因为您可能只希望每个表有一个类,而数据库被继承,因为只声明一次是有意义的。
【讨论】:
以上是关于Peewee 元类继承的主要内容,如果未能解决你的问题,请参考以下文章