[英]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.