如果模型中的字段为空,则在保存时删除模型实例



我有一个名为"服务"的模型。在用户保存模型表单后,如果主体null,我希望删除模型实例。这是我的模型:

class Services(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
heading = models.CharField(max_length=60, null=True, blank=True)
body = models.TextField(max_length=5000, null=True, blank=True)
price = models.CharField(max_length=100, null=True, blank=True)
def __str__(self):
return self.user.username    
def save(self, *args, **kwargs):
super(Services, self).save(*args, **kwargs)
if self.body == None:  #also tried if bool(self.body) == False:
self.delete()
else:
pass

当 bodynull(或blank(时,此代码无法成功删除模型实例。你知道我哪里做错了吗?

编辑:我也尝试了以下内容无济于事:

@receiver(models.signals.post_save, sender=Services)
def delete_services(sender, instance, **kwargs):
if bool(instance.body) == False:
instance.delete()  

谢谢!

如果body为空,则应测试self.body == ''而不是self.body == None

您可以通过简单地编写if not self.body:来同时测试两者。

最新更新