如何在Django模型中编写直接更改数据库的方法

如何在Django模型中编写直接更改数据库的方法,django,django-models,Django,Django Models,我在Django模型中创建了一个产品类,如: class Product(models.Model): title = models.CharField(max_length=255, unique = True) description = models.TextField() image_url = models.URLField(verify_exists=True, max_length=200, blank = True, null = True) qu

我在Django模型中创建了一个产品类,如:

class Product(models.Model):
    title = models.CharField(max_length=255, unique = True)
    description = models.TextField()
    image_url = models.URLField(verify_exists=True, max_length=200, blank = True, null = True)
    quantity = models.PositiveSmallIntegerField(default=0)
我想在这个类中添加一个sell()方法。我喜欢:

def sell(self):
    result = self.quantity - 1
    return result
我想在执行p.sell()时更改数据库中的值

当我像这样在壳中运行它时

 >>p = Product(title = 'title', description = 'des', quantity = 10)
 >>p.save()
 >>p.sell()
9    # it shown 9, but the database not changed still 10
但如果我继续这样做 它可以把数量改为9 但是,当我只键入p.sell()时,如何更改值呢? 如何在模型中编辑它

def sell(self, save=True):
  self.quantity -= 1
  if save:
    self.save()


我想知道。。。为什么要添加
if save:
而不是自动保存?@yuvi:以防在需要保存之前需要对模型属性进行进一步修改。我想知道。。。为什么要添加
if save:
而不是自动保存?@yuvi:以防在需要保存之前需要对模型属性进行进一步修改。
def sell(self, save=True):
  self.quantity -= 1
  if save:
    self.save()