如果一个字段为TRUE,则自动从数据库中删除对象

时间:2019-07-04 08:54:08

标签: python django django-models

如果对象的一个​​属性为TRUE,则自动从数据库中删除该对象。

我尝试了Django Signals,但没有帮助。

class Question(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField(max_length=50)
    question = models.TextField(max_length=200)
    answered = models.BooleanField(default=False)

    def __str__(self):
        return self.name

如果我在管理面板中将“回答”字段更改为TRUE,则必须自动从数据库中删除该对象。

1 个答案:

答案 0 :(得分:4)

您将需要使用类似以下内容的post_save信号:

from .models import Question

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

@receiver(post_save, sender=Question)
def save_profile(sender, instance, **kwargs):
    if instance.answered:
        instance.delete()