你能告诉我为什么这里创建两个对象而不是一个Notification对象吗?

问题描述 投票:0回答:1

这里我想在创建博客后创建一个通知。它工作正常,但问题在于创建两个

Notification
对象而不是一个对象。你能告诉我我的代码哪里有问题吗?

models.py:

class blog(models.Model):
    title = models.CharField(max_length=250)
    img = models.ImageField(upload_to="img_file/", blank=True, null=True)

    def __str__(self):
        return f"{self.pk}.{self.title}"


class Notification(models.Model):
    title = models.CharField(max_length=250)
    details = models.TextField()
    is_seen = models.BooleanField(default=False)

    def __str__(self):
        return f"{self.pk}.{self.title}"

signal.py:

from django.db.models.signals import post_save
from django.dispatch import receiver

from .models import blog, Notification

@receiver(post_save, sender=blog)
def call_notification(sender, instance, **kwargs):
    Notification.objects.create(
        title="New Blog Post uploaded", details=f"{instance.id} number Blog"
    )
django django-signals
1个回答
0
投票

我是这样解决的:

@receiver(post_save, sender=blog)
def create_notification(sender, instance, created, **kwargs):
    if created:
        Notification.objects.create(
            title="New Blog Post uploaded", details=f"{instance.id} number Blog"
        )

注意:如果有任何替代更好的解决方案请给我。

© www.soinside.com 2019 - 2024. All rights reserved.