【发布时间】:2017-10-15 20:30:30
【问题描述】:
通常我们只使用inst.save() 将实例保存到数据库中,但Django 在its source code 中使用user.save(using=self._db)。另外,它使用user.save(update_fields=['last_login'])elsewhere。
这让我有些困惑。更糟糕的是,document for the save() method 非常非常简单:
Model.save(force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)[source]如果你想要自定义保存行为,你可以覆盖这个
save()方法。详情请见Overriding predefined model methods。模型保存过程也有一些微妙之处;见章节 下面。
它甚至没有包含那些参数的解释!
我的问题是:我怎么知道什么时候应该使用save()的高级参数?如果我要实现自定义模型,我肯定会写user.save()。
我自己做了几个实验,比如将user.save(using=self._db) 更改为user.save(),并没有出现任何问题,但我不想有一天感到惊讶。另外,由于某些原因,必须传递参数,对吧?
【问题讨论】:
标签: sql django database django-models model