运行一段时间后,Django中的NoneType对象没有属性'objects'

时间:2018-12-18 18:28:10

标签: python django

我最近将Django 1.8迁移到Django 1.11,一切似乎都正常运行,但是在生产中,经过一段时间的正确运行,Django开始返回如下消息:

AttributeError:“ NoneType”对象没有属性“ objects” AttributeError:“ NoneType”对象不可调用

用户无法继续使用该应用程序,每个操作都返回一个“内部服务器错误”(均与“ NoneType”对象有关……)。甚至我自定义的Django 500错误模板也没有显示。

Django在Apache / WSGI上运行。

通常看来,类和对象突然是“ NoneType”对象。

重新加载Apache服务器后,一段时间后一切恢复正常,错误再次出现(几小时后)。

我还没有找到指向错误原因的特定日志错误。

调试这种零星的行为变化的最佳方法是什么?有谁知道如何解决这类错误?

相同的代码在Django 1.8的其他实例中运行并且正常工作。

添加有关回溯的其他信息:

回溯指向这样的一行:

blogs = Blog.objects.filter(author = request.user)

该行与适用于Django 1.8的代码完全相同。

回溯看起来像这样,没有太多细节。

AttributeError 'NoneType'对象没有属性'objects' 第65行的 init 中的uploader / forms.py 从以下位置调用:addons_settings中的myapp / myapp_context_processors.py

1 个答案:

答案 0 :(得分:1)

最后,我找到了解决方案。在更详细地查看了该异常的先前错误之后,我发现了一个总是在NoneType错误之前的某个时间发生的错误。

我遇到了这个错误:

RuntimeError: Model class myapp.users.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

由于某种原因,服务器在此错误后“崩溃”。

对我来说,解决方案是将myapp / views.py中的代码移动到myapp / users / views.py,从myapp / views.py导入模型会导致RuntimeError以及随后导致应用程序崩溃的错误