我正在使用django。我想创建一个关注按钮,一旦点击将包括关注者组中的当前用户,然后显示关注者的数量。还有一个取消跟随按钮,显然正好相反。
我的问题是如何以尽可能少的查询和尽可能高效的方式完成此操作。我将在用户和帖子之间有很多关系(后面跟着)。所以我猜测一旦我点击了关闭/取消关注按钮,就会有一个查询将新对象插入到用户,user_to_post和post表中。并且检索关注者的数量将从user_to_post表中获取另一个带有count的查询。我不确定这一点,但我假设这种方法总共需要4个查询(3个插入/删除,1个选择)。
有什么更好/更有效的方法呢?
谢谢!
答案 0 :(得分:0)
恕我直言:
检索关注者的数量将从user_to_post表中获取另一个带有计数的查询。
如果插入的东西比你拥有的东西,你不需要检索任何东西。获取这些数据并使用它们......或者甚至将它们传递给您的其他函数,例如不必要的变量等等...... 例如您可以在页面中拥有user_to_post的数量。所以它出现在你的请求中。 (如果你渲染它们)并且你可以通过形式传递这个变量,并根据你增加或减少的数量使var_count + 1或-1
为什么你需要发3个查询来发帖?请显示您的(查看或查询的位置)代码...您可以编写它__进行一次查询以将数据写入3个模型...如果您有影响主模型的字段。对于例如你有外键/多对多字段和相关模型,你可以进行1次查询,然后通过构造select_related()访问它的数据。请参阅:select related Django API reference和Making queries。
免费使用您的代码提出更具体的问题......