Django M2M 为每个亲戚保存和添加关系
Django M2M save and add relationship for each relative
我对 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 种不同的方法,但我的代码仍然不起作用,你能帮忙吗?谢谢!
你必须使用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)
我对 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 种不同的方法,但我的代码仍然不起作用,你能帮忙吗?谢谢!
你必须使用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)