这里我想在创建博客后创建一个通知。它工作正常,但问题在于创建两个
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"
)
我是这样解决的:
@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"
)
注意:如果有任何替代更好的解决方案请给我。