在Django admin中save_model和save_formset之间有什么区别

2024-05-15 07:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从这里阅读django admin中的save_model和{}

https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

但我不知道何时调用save_formset。在

表单集不应该在save_model期间保存吗?在


Tags: djangohttpscomref表单docsmodeladmin
3条回答

documentation需要一点澄清。在

  • save_model在添加或更改期间调用以保存基本模型。它专门用于保存相关或内联模型。在
  • save_related在{}完成后被调用(一次)以保存所有相关/内联模型。在
  • save_formset在每次添加/更改过程中可能会调用多次,每次在{}上定义的内联调用一次。它由save_related的基类实现调用。在

如果查看admin.ModelAdmin的代码,可以看到save_model和{}相继发生:

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)

{{cd4>和 ^{pr2}$

save_model适用于正在编辑的模型,即您注册ModelAdmin的任何模型

save_formset用于保存表单集(ModelAdmin.inlines)在

{cd1>保存模型^ save_related保存ManyToMany并为每个特定的内联调用save_formset

相关问题 更多 >