管理インターフェイスから保存するときに、多対多フィールドで選択したフィールドを取得する際に問題が発生しています。
これは私のモデルの単純化されたバージョンです。
class Template(models.Model):
name = models.CharField('name', max_length = 100)
sites = models.ManyToManyField(Sites)
def save(self, *args, **kwargs):
// Do something with the value of sites
for site in self.sites.all():
print site
super(Template, self).save(*args, **kwargs)
これにより、管理インターフェイスで保存するときに、選択したすべてのサイトが出力されます。ただし、これは実際には、保存する前に選択されたすべてのサイトを印刷します!
Image 名前が 'foo' でサイトが ['a', 'b'] のテンプレートがあります。管理インターフェイスで編集し、サイト「b」の選択を解除すると、[「a」] が印刷されます。ただし、出力は ['a', 'b']、たとえば古い値です。
これを修正する方法を知っている人はいますか?
助けていただければ幸いです。