1

我对为什么在美味的资源中需要 save_m2m 的理解尚不清楚。在 POST 中,如果我只发布与创建一个模型相关的数据并且不发送与 m2m 对象相关的任何内容,我还需要执行 save_m2m.xml 吗?为什么需要它?如果我覆盖 save_m2m 什么都不做会发生什么?它似乎工作正常并且我的资源已创建,我不确定这可能会导致任何隐藏的影响。能否请您发表评论。

4

1 回答 1

3

如果您没有标记任何字段,则is_m2m=True该方法实际上不会做任何事情。来自 save_m2m 中的 sweetpie 文档字符串:

"""
Handles the saving of related M2M data.

Due to the way Django works, the M2M data must be handled after the
main instance, which is why this isn't a part of the main ``save`` bits.

Currently slightly inefficient in that it will clear out the whole
relation and recreate the related data as needed.
"""

在 sweetpie 的资源save_m2m方法中检查 is_m2m 设置为 True 的字段,如果没有找到它就什么也不做,所以如果你的资源类没有任何 m2m 并且任何其他资源不会从它继承,你可以覆盖save_m2m什么都不做的方法。

你实际上会比美味派领先一个循环(一个小小的加速呜呼!;))。

于 2012-09-05T14:23:27.397 回答