[英]model in django,how to change two value when I edit one in admin?
在models.py
:
class Projects(models.Model):
# 项目名称
pro_name = models.CharField('项目名称',max_length=50)
# 项目内容
# content = models.CharField('项目内容',max_length=200)
content = models.TextField('项目内容', max_length=200)
# 外键
person = models.ForeignKey(Person, on_delete=models.CASCADE)
# 金额
sum_money = models.IntegerField('项目金额',default=0)
# 付款
payed_money = models.IntegerField('已付金额',default=0)
# 欠钱
owe_money = models.IntegerField('未付金额',default=0)
# 是否欠钱
is_debt = models.BooleanField('是否欠账',default=True)
# 发布日期
pub_date = models.DateTimeField('保存日期',default=timezone.now,)
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
def __str__(self):
return self.pro_name
class Meta:
verbose_name = '项目'
verbose_name_plural = '项目'
我该怎么办? 重写save()方法?
class Projects(models.Model):
# 项目名称
pro_name = models.CharField('项目名称',max_length=50)
...
class Meta:
verbose_name = '项目'
verbose_name_plural = '项目'
def save(self, *args, **kwargs):
if not self.pk:
# 新增 add
if self.payed_money != 0:
self.owe_money = self.sum_money - self.payed_money
if self.owe_money <= 0:
self.is_debt = False
else:
# 修改 change
this = Projects.objects.get(id=self.id)
if this.payed_money != self.payed_money:
self.owe_money = self.sum_money - self.payed_money
if self.owe_money <= 0:
self.is_debt = False
return super(Projects, self).save(*args, **kwargs)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.