0

我在AttributeError我目前正在开发的应用程序上感到很奇怪。我正在使用开发 Web 服务器进行开发,即 django 工具集的“runserver”命令。然后我决定在apache+mod-wsgi上测试应用程序,尽管有时它工作正常,但我一直收到这个错误。所以我认为那段代码一定有问题,


所以我决定把它注释掉,看看会发生什么。的,它仍然给我同样的错误(见第二张图片)。<-- 现在不相关。我在自定义用户模型上得到的 AttributeError ,即使它实际上包含classmethod get_by_type_and_id()我感兴趣的内容。


你以前见过这样的吗?您认为这是什么原因造成的?我已按照此处的教程进行部署。请注意,虽然这User 不是内置的 djangoUser模型。Auth我认为这是基于 django模块的“定制的、精简的”实现。

请注意,我在使用 django 自己的开发服务器进行开发时没有收到此错误。这只发生在我在 Apache+mod_wsgi 上部署应用程序时。

更多信息:

Django 版本 == 1.2.5

谢谢!我真的很感激任何帮助。

第一张图片: 属性错误

第二张图片: 即使注释掉的代码仍然会产生错误

4

2 回答 2

0

在潜入代码数小时后,我有一个灵光乍现的时刻。所以我想,也许在某些时候django.contrib.auth.models.User模型正在被应用程序中使用的一些 django 模块付诸实施。因为就像我提到的,这个应用程序的用户模型是定制的,应用程序django.contrib.auth.*至少没有直接使用。这是我的怀疑,因为这种错误并非特定于该特定属性。有时它会通过那个点,但随后另一个 AttributeError 会发生在其他一些引用其他 User 模型属性的视图上。然后在某一时刻,我注意到错误消息中的 User 属性是 django.contrib.auth.models.User 的属性。

所以我决定在我的 python 路径上“删除”django.contrib.auth.models,它显示,我正在使用的一个模块中发生了错误django.contrib.messages。我删除了它,我再也没有看到 AttributeError。原来django的Messagemodel有一个foreign_key指向django.contrib.auth.models.User。

但是后来,我失去了 django 消息框架的灵活性,尤其是当我在视图中使用 HttpResponseRedirect 时,即无法将有用的消息放入模板的上下文中。或者也许有?:)

更新2(现在很确定):

是的,我现在很确定这django.contrib.messages是导致错误的原因。我尝试在另一个使用自定义用户模型的应用程序上重现错误,即不是 django.contrib.auth.models.User。我启用了 django.contrib.messages 模块并产生了基本相同的错误。我想知道为什么在 Apache+mod_wsgi 上会发生这种情况,而不是在 django 自己的开发服务器上。

于 2013-02-02T10:57:50.877 回答
0

有几点需要注意:

  • 你确定你有get_by_type_and_id用户的方法吗?
  • 你设置pasword而不是password(错字)
  • 我认为您必须在第二个屏幕截图中缩进第 60 行
于 2013-02-02T11:11:09.163 回答