我真的希望我不必为此求助于 SO ,但现在它让我发疯了,所以这里......
# models.py
[...]
from datetime import datetime as dt
class Foo(models.Model):
[...]
date_time = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ['-date_time']
def is_fresh(self):
if (dt.now() - self.date_time).seconds < settings.FOO_LIFESPAN:
return True
else:
return False
def __unicode__(self):
return u'%s|%s %s' % ([...], self.date_time)
当我尝试使用is_fresh()
我得到的方法时AttributeError: 'Foo' object has no attribute 'is_fresh'
。
我已经看到其他在 SO 上遇到此问题的人已通过修复缩进来解决它。我相信这里的情况并非如此(著名的遗言)。我在 Eclipse 中工作,没有任何其他与缩进相关的偷偷摸摸的错误......
有什么想法吗?
编辑
我将其用作 Dajaxice/Dajax 函数的一部分。
# ajax.py
def seek_bar(request, name):
# Other stuff goes here. I know that it works 100%
foo_list = []
[...]
for receipt in receipts:
foo_list.append((receipt.foos.all()[0], receipt.pk))
[...]
# Check freshness
for (foo, bar) in foo_list:
if foo.is_fresh():
dajax.add_css_class('#timer_0%s' % bar, 'fresh')
else:
dajax.remove_css_class('#timer_0%s' % bar, 'fresh')
dajax.add_css_class('#timer_0%s' % bar, 'stale')