擅长:python、mysql、java
<p><a href="https://docs.djangoproject.com/en/1.9/ref/contrib/admin/" rel="noreferrer">documentation</a>需要一点澄清。在</p>
<ul>
<li><code>save_model</code>在添加或更改期间调用以保存基本模型。它专门用于保存相关或内联模型。在</li>
<li><code>save_related</code>在{<cd1>}完成后被调用(一次)以保存所有相关/内联模型。在</li>
<li><code>save_formset</code>在每次添加/更改过程中可能会调用多次,每次在{<cd5>}上定义的内联调用一次。它由<code>save_related</code>的基类实现调用。在</li>
</ul>
<p>如果查看<code>admin.ModelAdmin</code>的代码,可以看到<code>save_model</code>和{<cd2>}相继发生:</p>
<pre><code>class ModelAdmin(BaseModelAdmin):
def changeform_view(...):
# ...
if all_valid(formsets) and form_validated:
self.save_model(request, new_object, form, not add)
self.save_related(request, form, formsets, not add)
</code></pre>
<p>{{cd4>和<cd2}的每个实现都有一个<cd2}调用:</p>
^{pr2}$