所以,昨天我发布了一个我正在使用的类方法的问题(Can an object method return an instance of the object?),答案是"如果你愿意,你可以把它改成一个类方法,但是那里有没有理由你的代码不能按原样运行。"把它改成班级方法是有效的,所以我继续我的生活。现在我遇到了另一个问题,即下面的方法(同一个类)没有用,告诉我'NoneType' object has no attribute 'objects'
。我跳进调试器,手动输入完全相同的代码工作正常。我将import User
行从文件顶部移动到函数本身,现在它可以正常工作。这是文件中使用User类的唯一位置。人和用户没有与外键关系链接 - 他们只是共享用户名,我们以这种方式进行查找。
我还应该补充一点,这些方法在几天前都运行良好,而且在我们的提交历史中我无法找到它们的任何改动。
Class Person(models.Model):
def to_user(self):
'''returns user linked to Person or None(needed for some third
party packages)'''
try:
from django.contrib.auth.models import User
return User.objects.get(username=str(self.username))
except ObjectDoesNotExist:
print("No associated user found using username {0}".format(self.username))
return None
答案 0 :(得分:0)
因为我有一个循环导入。