在apache2 + mod_wsgi上部署Django应用程序时出现异常错误

时间:2013-02-01 17:39:35

标签: django django-models

我在我目前正在处理的应用上遇到这个奇怪的AttributeError。我正在开发使用开发Web服务器,即" runserver" django工具集的命令。然后我决定在 apache + mod-wsgi 上测试应用程序,虽然它有时可以正常工作但我仍然坚持这个错误。所以我觉得这段代码一定有问题,


所以我决定将其评论,看看会发生什么。并且,它仍然给我同样的错误(见第2张图片)。< - 现在不相关。 我犯了自定义用户模型的属性错误,即使它实际上包含classmethod get_by_type_and_id()也是我感兴趣的。


你以前见过这样的吗?你认为这是怎么回事?我已按照教程here进行部署。请注意,User不是内置的django User模型。我认为这是一个定制的,精简的"基于django的Auth模块的实现。

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

更多信息:

Django版本== 1.2.5

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

第一张图片:  AttributeError

第二张图片: The code which even commented out, still produce an error

2 个答案:

答案 0 :(得分:0)

经过几个小时的潜入代码,我有一个尤里卡时刻。所以我想,也许在某些时候django.contrib.auth.models.User模型正在由应用程序中使用的一些django模块付诸行动。因为就像我提到的那样,这个应用程序的用户模型是自定义的,应用程序至少不是直接使用django.contrib.auth.*。这是我的怀疑,因为这种错误不是特定于该特定属性。有时它会通过该点,但是在引用其他用户模型属性的其他视图上会出现另一个AttributeError。然后有一次我注意到错误消息中User的属性是django.contrib.auth.models.User的属性。

所以我决定在我的python路径上“删除”django.contrib.auth.models,并在那里显示,我正在使用的其中一个模块django.contrib.messages发生错误。我删除了它,我没有再看到AttributeError。事实证明,django的Message模型有一个对django.contrib.auth.models.User的foreign_key。

然而,我失去了django消息框架的灵活性,特别是当我在HttpResponseRedirect的视图上使用它时,即无法在模板的上下文中放置有用的消息。或者可能有? :)

更新2(非常肯定):

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

答案 1 :(得分:0)

很少有事情需要注意:

  • 您确定自己拥有get_by_type_and_id方法吗?
  • 您设置pasword而不是password(拼写错误)
  • 我认为您必须在第二个屏幕截图中缩进第60行