Peewee Meta class 内在

Peewee Meta class inherence

我正在努力解决以下问题:

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

我现在的问题是,为什么在这种情况下更改了 table 名称,这是否可以避免?我完全糊涂了

http://docs.peewee-orm.com/en/latest/peewee/models.html#model-options-and-table-metadata

文档列出了哪些选项是继承的,哪些不是。

只有某些属性通过内部“元”class 传递给子class。它的目的是 1) 命名空间,以及 2) 提供关于 DRY 代码的约定。

table 名称未被继承,因为大概您只想要一个 class-per-table,而数据库 继承的,因为它只声明一次是有意义的。