如何从Django模型中删除记录

如何从Django模型中删除记录,django,django-models,Django,Django Models,我有一个Django模型,如下所示: class Calculations(models.Model): category = models.CharField(max_length=127) make = models.CharField(max_length=127) model = models.CharField(max_length=127) customer = models.ForeignKey(to=Customer, null=True, bla

我有一个Django模型,如下所示:

class Calculations(models.Model):
    category = models.CharField(max_length=127)
    make = models.CharField(max_length=127)
    model = models.CharField(max_length=127)
    customer = models.ForeignKey(to=Customer, null=True, blank=True)
    data = models.TextField(null=True, blank=True)
class Customer(models.Model):
    title = models.CharField(max_length=4, null=True)
    firstname = models.CharField(max_length=30)
    lastname = models.CharField(max_length=30)
    email = models.EmailField(null=True)
    address = models.CharField(max_length=80)
Customer.objects.filter(id=some_id).delete()
客户模型如下:

class Calculations(models.Model):
    category = models.CharField(max_length=127)
    make = models.CharField(max_length=127)
    model = models.CharField(max_length=127)
    customer = models.ForeignKey(to=Customer, null=True, blank=True)
    data = models.TextField(null=True, blank=True)
class Customer(models.Model):
    title = models.CharField(max_length=4, null=True)
    firstname = models.CharField(max_length=30)
    lastname = models.CharField(max_length=30)
    email = models.EmailField(null=True)
    address = models.CharField(max_length=80)
Customer.objects.filter(id=some_id).delete()
我想从客户中删除一条记录。我的做法如下:

class Calculations(models.Model):
    category = models.CharField(max_length=127)
    make = models.CharField(max_length=127)
    model = models.CharField(max_length=127)
    customer = models.ForeignKey(to=Customer, null=True, blank=True)
    data = models.TextField(null=True, blank=True)
class Customer(models.Model):
    title = models.CharField(max_length=4, null=True)
    firstname = models.CharField(max_length=30)
    lastname = models.CharField(max_length=30)
    email = models.EmailField(null=True)
    address = models.CharField(max_length=80)
Customer.objects.filter(id=some_id).delete()
但这会删除
客户
计算

我可能应该在_delete上使用
,例如:

customer = models.ForeignKey(to=Customer, null=True, blank=True, on_delete=models....)
但是,我想要的是:

  • 如果我删除
    计算
    ,那么我还想删除客户
  • 但是,如果我从
    customer
    中删除一条记录,我只希望删除该客户,并删除计算中的
    customer\u id
    ,因此不会删除整个计算记录

你知道怎么做吗

要在删除
计算时删除
客户

def delete(self, *args, **kwargs):
    self.customer.delete()
    super(Calculations, self).delete(*args, **kwargs)
要避免在删除
客户时删除
计算

customer = models.ForeignKey(to=Customer, null=True, blank=True, on_delete=models.SET_NULL)