模型中可用的导入对象,但不在模型的方法中

时间:2011-02-11 00:17:49

标签: python django django-models

在我的模型文件中,模型可以从模型本身(如预期)访问导入的项目,但不能从模型的方法中访问。例如:

from django.db import models
from datetime import datetime

foo1 = datetime.now() # this assigns successfully

class ServiceEventManager(models.Manager):
    foo2 = datetime.now() # this assigns successfully

    def getCurrentEvents(self, state_type=None):
        foo3 = datetime.now() # this fails with 'NoneType' object has no attribute 'now'

        from datetime import datetime as datetime2
        foo4 = datetime2.now() # this assigns successfully
    ....

该问题还会影响从models.Model(上面的那个是models.Manager)继承的模型,除了导入的项目(例如datetime)之外,模型方法在引用其他模型或函数本地时会出现“NoneType”错误到模型文件。

这个问题有些奇怪,因为(a)它只影响模型文件(在表单文件中,我能够引用Class方法中的导入函数),以及(b)它只影响Web会话(当我从命令行测试模型,没有问题。)

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

在代码/模型中查找正在执行'datetime = None'或'datetime = something_that_returns_None()'

的内容