代码之家  ›  专栏  ›  技术社区  ›  Bernhard Vallant

Django:在更改列表中显示多对多字段

  •  3
  • Bernhard Vallant  · 技术社区  · 15 年前

    Django不支持在变更列表中显示多对多关系中的相关对象,这是有充分理由的。这将导致大量的数据库点击。

    但有时不可避免地需要在变更列表中显示对象的类别,这些类别与对象有多对多的关系。在这种情况下,是否有人有一些经验/片段等来加快这一速度(考虑缓存、自定义sql查询?(我知道我可以创建一个调用 object.categories.all() ... 但这真的会让人头疼……)。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Stan    14 年前

    在这里,你必须做出选择 denormalization 在你的模型中,如果你认为一个以上的数据库命中 每行 在你的变更单上是不可接受的。

    问题是如何存储这种多人关系?也许你可以和一个同步的 JSON serialized object 在一个 CharField 或者 TextField 序列化所需字段的子集( pk name 例如)。

    但是,当添加一个潜在的大专栏queryset's时,要小心对性能的副作用 defer method 他是你的朋友。