use*_*107 5 python django django-admin
我正在这里阅读save_model和save_formsetdjango管理员
https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model
但我很困惑何时save_formset被召唤.
不应该保存formset save_model吗?
该文件可以使用一些澄清.
save_model在添加或更改期间调用以保存基本模型.它特别不用于保存相关或内联模型.save_relatedsave_model完成后调用(一次)以保存所有相关/内联模型.save_formset在每次添加/更改期间可能会多次调用,一次为您定义的每个内联调用ModelAdmin.它由基类实现调用save_related.如果您查看代码admin.ModelAdmin,您可以看到save_model并save_related一个接一个地发生:
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)
Run Code Online (Sandbox Code Playgroud)
并且save_related有一个简单的实现来调用save_formset每个内联:
class ModelAdmin(BaseModelAdmin):
# ...
def save_related(self, request, form, formsets, change):
form.save_m2m()
for formset in formsets:
self.save_formset(request, form, formset, change=change)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4214 次 |
| 最近记录: |