0

Django M2M の保存に関して、ばかげた問題が 1 つあります。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 に答える