Django:保存时从m2m字段检索值

Django:保存时从m2m字段检索值,django,django-models,Django,Django Models,从管理界面保存时,在多对多字段中检索所选字段时出现问题 这是我模型的简化版本 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

从管理界面保存时,在多对多字段中检索所选字段时出现问题

这是我模型的简化版本

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)
保存到管理界面时,应打印所有选定的站点。但是,这实际上会打印保存之前选择的所有站点

图片我有一个名为“foo”的模板和网站['a','b']。当我在管理界面中编辑它并取消选择站点“b”时,我希望它打印['a']。但是,输出是['a','b',],例如旧值

有人知道如何解决这个问题吗


非常感谢您的帮助

调用
save
将提交更改,因此您可能希望在之后迭代站点,如下所示:

def save(self, *args, **kwargs):
    super(Template, self).save(*args, **kwargs)
    for site in self.sites.all():
        print site
如果您特别想在保存前或保存后执行操作,请查看