简体   繁体   English

Django M2M为每个亲戚保存并添加关系

[英]Django M2M save and add relationship for each relative

i have one silly problem with Django M2M saving. 我对Django M2M保存有一个愚蠢的问题。 I don't use Django Admin (use my own custom templates) 我不使用Django Admin(使用我自己的自定义模板)

So, I have simple relationship: 所以,我有简单的关系:

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

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

I need after saving every news mark it as new to every webmaster. 保存所有新闻后,我需要将其标记为对每个网站管理员都是新的。 So i figure out something like this: 所以我想出这样的东西:

# 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)

But i try like 6-7 different ways, and my code still don't work, can you help? 但是我尝试使用6-7种不同的方式,但是我的代码仍然无法正常工作,您能帮上忙吗? Thanks! 谢谢!

You have to use post_save () signal, add this code in models.py 您必须使用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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM