0

我对 Django M2M 保存有一个愚蠢的问题。我不使用 Django Admin(使用我自己的自定义模板)

所以,我有简单的关系:

# models
class News(models.Model):
    title = models.CharField(max_length=256)

class Webmaster(AbstractUser):
    ...
    news = models.ManyToManyField(News)

在保存每条新闻后,我需要将其标记为每个网站管理员的新消息。所以我想出这样的事情:

# models
class News(models.Model):
    title = models.CharField(max_length=256)

    def save(self, *args, **kwargs):
        if self.id:
            news = News.objects.all()[0]
            self.webmasters.add(news)
        super(News, self).save(*args, **kwargs)

但是我尝试了 6-7 种不同的方式,但我的代码仍然无法正常工作,你能帮忙吗?谢谢!

4

1 回答 1

0

您必须使用 post_save() 信号,将此代码添加到 models.py

def Webmaster_add(sender, instance, **kwargs):
     #you can put here some condition stuff
     w = Webmasters.objects.all()
     for obj in w:
         obj.news.add(instance)

# register the signal
post_save.connect(webmaster_add, sender=News)
于 2015-03-30T12:42:07.030 回答