У меня есть модель в базе данных для хранения глобальных настроек приложения. Настройки могут быть различного типа, поэтому я создал дискриминатор объявлений data_type с идентичностью polymorphi c.
class MiscSetting(db.Model):
__tablename__ = "settings_misc"
__table_args__ = (db.UniqueConstraint("county", "name", name="uc_county_name"),)
id = db.Column(db.Integer, primary_key=True)
county = db.Column(db.String, nullable=True)
name = db.Column(db.String(length=50))
data_type = db.Column(db.String(50))
__mapper_args__ = {
'polymorphic_on': data_type,
'with_polymorphic': '*'
}
class StringSetting(MiscSetting):
__tablename__ = 'settings_string'
id = db.Column(db.Integer, db.ForeignKey('settings_misc.id'), primary_key=True)
value = db.Column(db.String)
__mapper_args__ = {
'polymorphic_identity': 'string'
}
class IntegerSetting(MiscSetting):
__tablename__ = 'settings_integer'
id = db.Column(db.Integer, db.ForeignKey('settings_misc.id'), primary_key=True)
value = db.Column(db.Integer)
__mapper_args__ = {
'polymorphic_identity': 'integer'
}
Когда я пытаюсь сбросить все полученные объекты, не найдено "значение".
settings = db.session.query(MiscSetting).all()
dump = json.dumps(MiscSettingSchema().dump(settings, many=True))
class MiscSettingSchema(BaseSchema):
class Meta:
model = MiscSetting
Вопрос в том, как включить значение в схему "Зефир"?