我有兩個相關的(通過 foreignKey 關係)模型,並為帶有內聯的父級創建了管理模型。在某個用例中,我需要獲取所有相關模型並使用它們來更新父模型的 1 個特定字段。什麼是有效的方法?
我的模型:
class ParentModel(BaseModel):
text = models.CharField() # This is generated from inline children's data
...
class ChildModel(BaseModel):
parent = models.ForeignKey(ParentModel, on_delete=models.RESTRICT)
...
class ChildModelInline(TabularInline):
model = ChildModel
class ParentModelAdmin(admin.ModelAdmin):
inlines = [ChildModelInline]
...
我想要的是類似於這樣的東西:
class ParentModelAdmin(admin.ModelAdmin):
inlines = [ChildModelInline]
...
def save_model(self, request, obj, form, change):
inline_objects = <get_all_inline_objects>
obj.text = <generate_text(inline_objects)>
super(ParentModelAdmin, self).save_model(request, obj, form, change)
該save_model
方法在保存相關對象之前執行。這很明顯,因為相關對象必須引用模型的主鍵。
您可能正在尋找save_related
方法。
class ParentModelAdmin(admin.ModelAdmin):
def save_related(self, request, form, formsets, change):
super(ParentModelAdmin, self).save_related(self, request, form, formsets, change):
# form.instance stores the saved object
form.instance.text = ...
form.instance.save()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句