如果这个问题以前已经解决过,请道歉。因为我找不到一个合适的解决办法,我不得不问。 当父管理员的save\u model()中的模型内联管理字段发生更改时,我需要执行一个操作(一个API调用,告诉我的客户从他们的终端更新模型)。你知道吗
型号.py
class Student(models.Model)
name = CharField()
age = DateField()
class Marks(models.Model)
student = ForeignKey(Student)
subject = CharField()
marks = IntegerField()
管理员.py
class MarksInline(admin.TabularInline):
model = Marks
form = MarksForm
formset = MarksInlineFormSet
class StudentAdmin(admin.ModelAdmin):
form = StudentForm
inlines = [MarksInline, ]
我可以通过检查StudentAdmin
save_model()
内的form.changed_data
和MarksInline
模型MarksInlineFormSet
clean()
方法来实现这一点。问题是,我的操作将从这些方法中的每一个单独调用,从而产生两个调用,即使我只需要一个调用来更新客户端的Student
和Marks
模型。你知道吗
如果StudentAdmin
的save_model()
也可以返回通过MarksInline
中的form.changed_data
更改的字段,我的问题就解决了。你知道吗
也尝试通过实现Field Tracker来使用post_save
信号。但这也会向receiver函数发出单独的post_save
信号调用。你知道吗
有没有人知道一个变通方法,我可以用它从parent Adminssave_model()
方法中找出InlineAdmin字段的更改字段。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐