如何从Django模型中删除记录
我有一个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
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)