我有两个简单的模型 Article 和 Topic,您可以猜到每篇文章都可以属于一个或多个主题。
这个小应用的主要功能是显示用户选择的特定主题的所有文章。
什么模型应该有 ManyToManyField?对于我的用例,我认为将它放在 Topic 模型中是有意义的。但是,如果我这样做,如果我添加一篇新文章,我总是需要 2 个查询(1 个在 Article 模型上,1 个在 Topic 模型上建立关系) .
我找到了这个 generic rule ,但在这种情况下它对我帮助不大。
请您参考如下方法:
“通常,ManyToManyField 实例应该放在将要在表单上编辑的对象中。在上面的示例中,toppings 在 Pizza (Article) 中(而不是 Topping (Topics) having a pizzas (article) ManyToManyField )因为考虑一个比萨饼(文章)有浇头(主题)比一个浇头(主题)出现在多个比萨饼(文章)上更自然。按照上面的设置方式,比萨饼(文章)表单将让用户选择浇头(主题)。” - docs
只是引用,因为有趣的是文档的重点更多地放在 UI 而不是 ORM 上。
此外,为了以防万一,您可能已经这样做了,我喜欢通过 shell 与我的应用程序进行交互在这种情况下尝试不同的查询。
