我有一个非常正常的模型:
class Nonce(models.Model):
key = models.CharField(_('key'), max_length=36, primary_key=True, blank=False)
token = models.ForeignKey('Token')
date_created = models.DateTimeField(_('date created'), blank=False, default='1970-01-01 00:00:00')
date_consumed = models.DateTimeField(_('date consumed'), blank=True, null=True)
created_by = models.IPAddressField(_('IP address'), blank=False, default='0.0.0.0')
consumed_by = models.ForeignKey('MyUser', blank=True, null=True, on_delete=models.SET_NULL)
def __unicode__(self):
return self.key
其中许多将被创建,我只需要保留其中的一小部分实际上是“消耗”(使用)的。此外,从模型中看不出,但这些将在 1 小时内到期。
因此,为了不让一堆旧的随机数弄乱我的数据库,并使应用程序免于定期(经常)删除过期的工作,我认为最好将它们存储在 RAM 中直到它们被消耗(如果有的话) )。
所以,我已经分叉了我的代码,我想我只需将我的代码替换为我 save() 使用 save(commit=False) 创建的对象,然后将对象存储到 RAM (Memcached) 中。稍后,如果使用了特定的 nonce,我将正确地 save(),否则,该对象将过期并通过 Memcache 清除。
不幸的是,我收到了错误:save() got an unexpected keyword argument 'commit'
来自 Django 在 nonce.save(commit=False) 行。为什么?
我正在使用 Django 1.4.5 和 Python 2.7.2。