好的,所以这是一个让我整日疯狂的事情的简化版本:
models.py
:
from django.template.defaultfilters import slugify
class MyModel(models.Model):
....
def populate_property(self):
self.property = slugify('string of text')
我的视图然后调用populate_property()
,但我收到NoneType object is not callable
错误。
但是,如果我添加了import
的内联slugify
,那么它就可以了。
这是已经工作了很长时间的代码,所以我现在不知所措。
PYTHONPATH
但它看起来不错,环境是使用buildout
非常感谢任何帮助......
答案 0 :(得分:1)
刚刚征服了类似的问题,听起来你的代码中有一个循环引用(这个文件导入从这个文件导入的东西)。将导入放在populate_property中没有坏处。
答案 1 :(得分:0)
根据您发布的代码,应该没有问题。我能想到的唯一导致你提到的错误的是你改变了slugify
的值。当打算使用=
或类似内容时,很可能意外使用==
。
检查的最佳方法是保留其余代码,但除了现在的导入外,还要添加from django.template import defaultfilters
。然后,将有问题的特定代码行更改为:
def populate_property(self):
self.property = defaultfilters.slugify('string of text')
如果有效,请尝试追踪slugify
重新分配的位置。
答案 2 :(得分:0)
如果您使用的是Django< 1.7,我注意到这几乎可以肯定是由import signal
导致的循环导入。
我总是在奇怪的情况下,它在本地工作,也许在开发服务器上,可能不在prod服务器上......