使用 UUID 的 Flask-Appbuilder 模型关系
Flask-Appbuilder Model Relations Using UUID
我正在开发一个应用程序,它将定义几个模型,这些模型将使用 scqlalchemy_utils 包中的 UUIDType,定义如下视图:
class ChildModelAView(ModelView):
datamodel = SQLAInterface(ChildA)
list_columns = ['title', 'description', 'parent_model']
class ChildModelBView(ModelView):
datamodel = SQLAInterface(ChildB)
list_columns = ['title', 'description', 'parent_model']
class ParentModelView(ModelView):
datamodel = SQLAInterface(Parent)
related_views = [ChildModelAView, ChildModelBView]
我的模特是这样的:
class ChildA(Model):
id = Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
parent_id = Column(UUIDType(binary=False), ForeignKey('parent.id'), nullable=False)
parent = relationship('Parent')
class ChildB(Model):
id = Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
parent_id = Column(UUIDType(binary=False), ForeignKey('parent.id'), nullable=False)
parent = relationship('Parent')
class Parent(Model):
id = Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
我在启动应用程序时看到所有定义为 UUID 的列的警告:
2018-02-02 19:08:39,244:WARNING:flask_appbuilder.models.filters:Filter type not supported for column: id
2018-02-02 19:08:39,244:WARNING:flask_appbuilder.models.filters:Filter type not supported for column: parent_id
任何人都可以向我展示允许使用 UUID 类型(或其他自定义)列进行过滤的工作示例或片段吗?使用这种类型的所有其他东西似乎都能正常工作。
谢谢!
万一其他人偶然发现了同样的问题,FAB 本身似乎有一个解决方案。
这是应该可以解决此问题的 PR:https://github.com/dpgaspar/Flask-AppBuilder/pull/694
我正在开发一个应用程序,它将定义几个模型,这些模型将使用 scqlalchemy_utils 包中的 UUIDType,定义如下视图:
class ChildModelAView(ModelView):
datamodel = SQLAInterface(ChildA)
list_columns = ['title', 'description', 'parent_model']
class ChildModelBView(ModelView):
datamodel = SQLAInterface(ChildB)
list_columns = ['title', 'description', 'parent_model']
class ParentModelView(ModelView):
datamodel = SQLAInterface(Parent)
related_views = [ChildModelAView, ChildModelBView]
我的模特是这样的:
class ChildA(Model):
id = Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
parent_id = Column(UUIDType(binary=False), ForeignKey('parent.id'), nullable=False)
parent = relationship('Parent')
class ChildB(Model):
id = Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
parent_id = Column(UUIDType(binary=False), ForeignKey('parent.id'), nullable=False)
parent = relationship('Parent')
class Parent(Model):
id = Column(UUIDType(binary=False), default=uuid.uuid4, primary_key=True)
我在启动应用程序时看到所有定义为 UUID 的列的警告:
2018-02-02 19:08:39,244:WARNING:flask_appbuilder.models.filters:Filter type not supported for column: id
2018-02-02 19:08:39,244:WARNING:flask_appbuilder.models.filters:Filter type not supported for column: parent_id
任何人都可以向我展示允许使用 UUID 类型(或其他自定义)列进行过滤的工作示例或片段吗?使用这种类型的所有其他东西似乎都能正常工作。
谢谢!
万一其他人偶然发现了同样的问题,FAB 本身似乎有一个解决方案。
这是应该可以解决此问题的 PR:https://github.com/dpgaspar/Flask-AppBuilder/pull/694