gpt4 book ai didi

python - django 方法是存在的,但是当我尝试调用它时评估为 NoneType

转载 作者:行者123 更新时间:2023-12-01 05:50:12 25 4
gpt4 key购买 nike

我在 Django 模型之一中有一个自定义方法,它执行一些例行的数据库数据获取和求和。这是它:

from django.utils.timezone import utc, now 
...


class Project(models.Model):
...
def getTotalMonthlyBackers(self, monthdate=now()):
from pledger.models import DonationHistory

return (DonationHistory.objects
.filter(project=self)
.filter(datetime_sent__gte=datetime(monthdate.year, monthdate.month, 1))
.aggregate(Count('user', distinct=True))['user__count'])

当我尝试通过

调用该方法时
print project.getTotalMonthlyBackers()

我收到错误:'NoneType' object is not callable

但是,如果我输出方法本身只是为了检查它是否有拼写错误:

print project.getTotalMonthlyBackers

我得到:<bound method Project.getTotalMonthlyBackers of <Project: Putty>>

所以该方法就在那里并且绑定(bind)到特定的 Project目的。在Python中有一些非常明显的东西我无法调用这个方法,但我无法从手册中弄清楚它。

回溯:

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/mnt/hgfs/Projects/BitFund/Sources/source/project/views/project_view_details.py" in view
101. print project.getTotalMonthlyBackers()
File "/mnt/hgfs/Projects/BitFund/Sources/source/project/models.py" in getTotalMonthlyBackers
76. .filter(datetime_sent__gte=datetime(monthdate.year, monthdate.month, 1))

Exception Type: TypeError at /putty_1
Exception Value: 'NoneType' object is not callable

最佳答案

看来你还没有导入datetime构造函数,而且如果你使用它,你会得到一个naive日期时间,这会产生一个变暖,因为该结构不包含 tzinfo 对象,因此请尝试使用该 datetime 的时区感知构造函数或使用 make_aware

查看这篇关于该主题的文档,我相信您会以最正确的方式解决它 Timezones and utils

关于python - django 方法是存在的,但是当我尝试调用它时评估为 NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14568415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com