#orm #peewee #flask-peewee
#orm #peewee #flask-peewee
Вопрос:
Я борюсь со следующим:
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) предоставление соглашений вокруг СУХОГО кода.
имя таблицы не наследуется, потому что, по-видимому, вам нужен только один класс для каждой таблицы, тогда как база данных наследуется, потому что имеет смысл объявить это только один раз.