对这个问题之前是否已经解决表示歉意。由于我无法为此找到合适的解决方案,因此不得不提出要求。 当父管理员的save_model()中的模型的“内联管理”字段发生更改时,我需要执行一个操作(一个API调用,告诉我的客户端从其末端更新模型)。
models.py
class Student(models.Model)
name = CharField()
age = DateField()
class Marks(models.Model)
student = ForeignKey(Student)
subject = CharField()
marks = IntegerField()
admin.py
class MarksInline(admin.TabularInline):
model = Marks
form = MarksForm
formset = MarksInlineFormSet
class StudentAdmin(admin.ModelAdmin):
form = StudentForm
inlines = [MarksInline, ]
我可以通过在form.changed_data
StudentAdmin
内部以及save_model()
模型MarksInline
MarksInlineFormSet
方法中检查clean()
。问题是,即使我只需要一次调用来更新客户端中的Student
和Marks
模型,我的操作就会与上述每种方法分开调用,从而导致两次调用。 >
如果save_model()
的{{1}}也可以返回通过StudentAdmin
中的form.changed_data
更改过的字段,那么我的问题将得到解决。
通过实现Field Tracker,也尝试使用MarksInline
信号。但这也向接收器函数发出了单独的post_save
信号调用。
没有人知道一种解决方法,我可以从父Admins post_save
方法中找出InlineAdmin字段的更改字段。