Django不支持在更改列表中显示多对多关系中的相关对象。这将导致很多数据库命中。

但是有时候这是不可避免的,例如在更改列表中显示对象的类别,该类别与该对象具有多对多关系。在这种情况下,是否有人有一些经验/摘要等可以加快此速度(考虑缓存,自定义sql查询...)? (我知道我可以创建一个调用object.categories.all()的方法的事实,但这确实会让您很痛苦……)。

最佳答案

如果您认为更改列表中的每一行都没有数据库命中,则您必须在模型中选择denormalization

问题是如何存储这个ManyToMany关系?也许您可以在JSONCharField中使用同步的 TextField serialized object来序列化所需字段的子集(例如pkname)。

但是在添加潜在的大列时要小心性能的副作用,查询集的defer method是您的 friend 。

关于sql - Django:在更改列表中显示多对多字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3856677/

10-13 02:08