在我的模型中,我有ManyToManyField
一个不同的模型:
class A(models.Model):
...
class B(models.Model):
field = models.ManyToManyField(A)
假设我已经field
使用了一些值,那么我试图获取用户在Save
按下按钮之前未选择的项目的列表。为此,我在save()
里面重载了方法B
:
def save(self, *args, **kwargs):
super(B, self).save(*args, **kwargs)
print self.field.all()
但是,当Save
按下按钮时,self.field.all()
我得到的值就是加载表单时的值。
例如,如果我在列表中有两个选择项(a
和b
),我取消选择b
并点击Save
按钮,self.field.all()
在save()
时间仍然a
和b
。如果我再次编辑该项目,则看到b
未选中,我又选择了该项目,save()
时间self.field.all()
仅为a
。
我的假设是未选择的项目将在save()
方法之后进行处理,尽管我在Django文档中没有找到参考。
有没有办法及时获取更新的列表save()
?如果不是,是否有一种方法可以重载以处理Model定义中的列表更新?
(注意:也欢迎使用其他方法。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句