烧瓶管理员一对一inline_models

时间:2020-04-27 17:44:05

标签: python flask sqlalchemy flask-admin

我有这两个模型:

@derive_schema
class Organization(db.Model):
    id = Column(UUID(as_uuid=True), unique=True, primary_key=True, server_default=sqlalchemy.text("uuid_generate_v4()"))
    name = Column(String, nullable=False, unique=True)
    code = Column(String, nullable=False, unique=True)
    owner_email = Column(String, nullable=False)
    labels = Column(JSONB)
    status = Column(Enum(OrganizationStatus), nullable=False)
    logo_url = Column(String)
    configuration = Column(JSONB, nullable=False)

    def __repr__(self):
        return self.name

@derive_schema
class PortalSettings(db.Model):
    id = Column(UUID(as_uuid=True), unique=True, primary_key=True, server_default=sqlalchemy.text("uuid_generate_v4()"))
    organization_id = db.Column(UUID(as_uuid=True), ForeignKey('organization.id'), nullable=False)
    portal_settings = Column(JSONB)
    organization = relationship(Organization, backref=backref('portal_settings', uselist=False, lazy="joined"))

    def __repr__(self):
        return self.portal_settings

和此ModelView

class OrganizationView(ConfigurationModelView):
    inline_models = (PortalSettings,)

组织和门户设置之间的关系应该一对一, 但是我不明白为什么在flask admin中我可以添加任意数量的门户设置而不是仅看到带有portal_settings JSONB字段的输入字段

sqla

1 个答案:

答案 0 :(得分:0)

基于这个要点 https://gist.github.com/DrecDroid/398a05e4945805bc09d1

我已经在 Flask-Admin 存储库上创建了 PR,也许很快它就会被合并。无论如何,您可以从 Gist 复制粘贴代码并在您的项目中使用它

https://github.com/flask-admin/flask-admin/pull/2091

相关问题