【问题标题】:flask admin one to one inline_models烧瓶管理员一对一 inline_models
【发布时间】:2020-08-11 08:55:02
【问题描述】:

我有这两种型号:

@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

还有这个模型视图

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

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

【问题讨论】:

    标签: python flask sqlalchemy flask-admin


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多