我们如何通知管理员用户新添加的项目,默认项目 is_active=False
How can we notify the admin about newly added project by user, by default project is_active=False
如何在仪表板上通知管理员(而不是通过邮件),并验证所有项目或拒绝项目。
class Compaigns(models.Model):
nameOfDeceased = models.CharField(max_length=100, null=False, blank=False)
nameOfDeceasedEn = models.CharField(max_length=100, null=False, blank=False)
projectName = models.CharField(max_length=255, null=False, blank=False)
projectNameEn = models.CharField(max_length=255, null=False, blank=False)
phone = models.CharField(max_length=255, null=False, blank=False)
image = models.ImageField(upload_to='projects/compaigns/%Y/%m/%d', blank=True, null=True)
is_compaign = models.BooleanField(default=True)
**is_active = models.BooleanField(default=False)**
detail = models.TextField(blank=True, null=True)
detailEn = models.TextField(blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
suggestedDonation = models.DecimalField(
max_digits=10, decimal_places=3, default=0.000)
compaignCategory = models.ManyToManyField(CompaignCategory)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.nameOfDeceased
class Meta:
verbose_name_plural = "Compaigns"
您可以通过以下方式实现:
通过覆盖 save() 方法:
class Compaigns(models.Model):
# ... Your model's fields
def __str__(self):
return self.nameOfDeceased
class Meta:
verbose_name_plural = "Compaigns"
def save(self, *args, **kwargs):
super().save(*args, **kwargs) # Call the "real" save() method.
send_notification() # your method to send notification to admin
使用 signal 比覆盖 save() 方法稍微复杂一些。为了进一步阅读,我添加了 django 文档 link.
如何在仪表板上通知管理员(而不是通过邮件),并验证所有项目或拒绝项目。
class Compaigns(models.Model):
nameOfDeceased = models.CharField(max_length=100, null=False, blank=False)
nameOfDeceasedEn = models.CharField(max_length=100, null=False, blank=False)
projectName = models.CharField(max_length=255, null=False, blank=False)
projectNameEn = models.CharField(max_length=255, null=False, blank=False)
phone = models.CharField(max_length=255, null=False, blank=False)
image = models.ImageField(upload_to='projects/compaigns/%Y/%m/%d', blank=True, null=True)
is_compaign = models.BooleanField(default=True)
**is_active = models.BooleanField(default=False)**
detail = models.TextField(blank=True, null=True)
detailEn = models.TextField(blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
suggestedDonation = models.DecimalField(
max_digits=10, decimal_places=3, default=0.000)
compaignCategory = models.ManyToManyField(CompaignCategory)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.nameOfDeceased
class Meta:
verbose_name_plural = "Compaigns"
您可以通过以下方式实现:
通过覆盖 save() 方法:
class Compaigns(models.Model):
# ... Your model's fields
def __str__(self):
return self.nameOfDeceased
class Meta:
verbose_name_plural = "Compaigns"
def save(self, *args, **kwargs):
super().save(*args, **kwargs) # Call the "real" save() method.
send_notification() # your method to send notification to admin
使用 signal 比覆盖 save() 方法稍微复杂一些。为了进一步阅读,我添加了 django 文档 link.