我正在为数据库设置 django 模型,目前我的方法是将数据库表直接映射到模型。但是,在某些情况下,我实际上需要使用相对复杂的视图。一个特定情况是我有一个表(在报告中,而不是数据库中)需要显示来自相关数据库表的合并列表:
class Entity(Models):
name = CharField()
class LargeEntity(Entity):
size = FloatField()
class SmallEntity(Entity):
type = ForeignKey(SmallEntityType)
报告(和表格)需要显示:
Entity name - entity.name
Large/Small - 'Large' if entity is LargeEntity else 'Small'
size/type - entity.size if entity is LargeEntity else 'type'
这可以通过CASE
SQL 中的语句来完成,但是由于这种情况在我的数据中经常发生,我宁愿找到一个更简洁的解决方案。
更改报告格式不是选项,但如果有更好的实现方式,可以更改数据库。