【发布时间】:2018-03-02 23:58:22
【问题描述】:
我有以下model,保存时会根据pk 计算hash_id 字段:
class MyTable(models.Model):
something = models.CharField(max_length=255)
reported = models.IntegerField(default=0, blank=True)
hash_id = models.CharField(max_length=32, db_index=True, unique=True, blank=True)
def save(self, *a, **kw):
super().save(*a, **kw)
self.hash_id = hash_fn(self.pk)
super().save(*a, **kw)
在我的views 之一中,我有以下几行,它们应该将reported 字段增加1,但是reported 增加2,因为覆盖了save 方法:
my_table_ins.reported = F('reported') + 1
my_table_ins.save()
理想情况下,我想要一些东西:
def save(self, *a, **kw):
super().save(*a, exclude=['reported'], **kw)
self.hash_id = hash_fn(self.pk)
super().save(*a, **kw)
【问题讨论】:
-
这是在here之前提出的
标签: django python-3.x django-models