【问题标题】:Django M2M save and add relationship for each relativeDjango M2M 为每个亲戚保存和添加关系
【发布时间】:2015-03-30 12:32:40
【问题描述】:

我对 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 种不同的方法,但我的代码仍然无法正常工作,你能帮忙吗?谢谢!

【问题讨论】:

    标签: python django m2m


    【解决方案1】:

    你必须使用 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)
    

    【讨论】:

    • 如果他想为每个站长做这件事,他必须查询信号内的所有站长并添加实例。
    • 谢谢!会试试这个..我真的很想给每个站长添加新闻。
    • type object 'Webmaster' has no attribute 'add'
    • 我已经更新了我的代码,请重试并告诉我
    • 我不知道为什么,但是加载需要很长时间(5 分钟以上),而且还没有完成。而且你没有错误。无论如何,感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 2020-06-18
    • 2014-08-16
    相关资源
    最近更新 更多