我是Python(2.7)和Django(1.3.1)的新手,我不确定调试此问题的下一步应该在哪里。一点背景,这个应用程序在我的生产环境中正常运行,该环境位于运行Ubuntu的EC2实例上。我在运行Mountain Lion的开发机器上运行时遇到了麻烦。我遵循了标准练习,并使用virtualenv来保持所有沙盒的正确性。
尝试渲染这条非常无害的行时会发生错误:
<meta property="facebook:login_url" content="{% url socialauth_begin 'facebook' %}" />
抛出异常:
Exception Value: Caught ImportError while rendering: cannot import name prepare_lookup_value
Exception Location: /dev/Sites/whattest/env/lib/python2.7/site-packages/grappelli/views/related.py in <module>, line 15
line 15: from django.contrib.admin.util import prepare_lookup_value
我认为这是某种类型的路径问题,但此时我无法在何处/如何跟踪它。
答案 0 :(得分:2)
当前版本的django-grappelli与Django 1.4和1.5兼容;所以我假设django-grapelli导入的django.contrib.admin.util.prepare_lookup_value
在Django 1.3中根本不可用。
无论如何,我不明白为什么有人会用这样一个旧版本的Django开始新的东西,除非是出于遗留原因。
更新:实际上,这个确切的问题似乎并非如此 - prepare_lookup_value
于2011年推出,1.3于2013年发布,由git blame
决定。但是,该功能的位置已从django.contrib.{util to utils}
更改,您的代码正在尝试导入django.contrib.admin.util.prepare_lookup_value
。
由于您似乎使用旧版本(至少某些)软件包,我建议将您的venv中的所有软件包(包括django-grapelli)升级到最新版本并查看问题是否仍然存在。