Python Django多态管理列表视图
我在Django代码中有一个全局配置变量列表,其中一些是整数,一些是字符串 我目前正在使用django多态性,这样基础模型有名称,子模型有值 例如: 类配置多态模型: name=models.CharFieldmax_length=128,unique=True 定义自身: 返回self.name 类配置配置: 值=模型。IntegerFielddefault=0 定义自身: 返回f'{self.name}={self.value}' 类配置str配置: value=models.CharFieldmax_length=256,默认值= 定义自身: 返回f'{self.name}={self.value}' 然后将模型注册到管理部分,如下所示: @管理注册表配置 类配置AdminPolymorphicparentModelAdmin: 列表显示='\uuuu str\uuuuu', child_models=configurationnt,ConfigurationStr @admin.RegisterConfiguration 类配置AdminPolyMorphicChildModelAdmin: 基本模型=配置 @admin.RegisterConfiguration str 类配置StradMinPolymorphicchildModelAdmin: 基本模型=配置str 不幸的是,str部分在配置的共享列表视图中只显示基类1。 除了查看ConfigurationNT和ConfigurationStr的特定列表外,我无法以任何方式访问该值 有没有办法把它们列在一个好的列表里 让我们假设我忘记了django多态性并使用稀疏数据,这样每个配置都有一个整数和一个字符串,以及一些机制来说明它应该是什么,比如整数类型。 然后,我可以在_str_______)实现中显示正确的数据,但是在编辑时,它将同时显示这两个数据。 在这样一个简单的例子中,这可能是可以的,但是我也有更复杂的模型,这些模型具有广泛的差异字段,但在逻辑上都属于一个列表。 那么,在管理界面中是否有方法根据字段隐藏/显示某些字段,例如在列表显示和列表可编辑中 长话短说,有没有办法在管理界面中正确实现多态列表?Python Django多态管理列表视图,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我在Django代码中有一个全局配置变量列表,其中一些是整数,一些是字符串 我目前正在使用django多态性,这样基础模型有名称,子模型有值 例如: 类配置多态模型: name=models.CharFieldmax_length=128,unique=True 定义自身: 返回self.name 类配置配置: 值=模型。IntegerFielddefault=0 定义自身: 返回f'{self.name}={self.value}' 类配置str配置: value=models.CharFie
让它在共享列表视图中可编辑将是令人惊讶的,但即使只是实际显示信息,而只能在对象本身内部或特定列表中进行编辑,也会很好。隐藏在polymorphic.admin.parentadmin.py的源代码中的是: 哪种是有意义的。由于您可能在那里显示了20个项目,因此在默认情况下尝试并优化它是有意义的。否则,该页面超时的可能性太大 不管怎样,我认为:
polymorphic_list = True
希望能为您解决此问题:
实际上,它也在文档中的“实施细节”下:
默认情况下,将在queryset上调用non_多态方法,因此仅将父模型提供给列表模板。这是为了避免检索子模型对性能的影响
这可以通过在父管理员上设置多态列表属性来控制。将其设置为True将为列表模板提供子模型
非常感谢,这正是我想要的!我的数据集非常小,最多在十个范围内,所以我怀疑性能是否会有多重要。是的,即使有20个,我认为大多数情况下都可以。很高兴能帮忙:
polymorphic_list = True