在我的本地环境中,django开发服务器运行正常,没有错误。
当我在具有Nginx和Gunicorn的生产环境中运行应用程序时,出现此错误:
AttributeError: 'NoneType' object has no attribute 'find'
这是错误的来源:
if cache.get('ratings').find(name_input) == -1:
result = food.objects.get(name = name_input)
我导入了内存缓存:
from django.core.cache import cache
并在我的settings.py中:
CACHES = {
'default': {
'BACKEND':
'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
我希望该网页能够正常运行
--------编辑:--------------
提供更多信息我的HTML部分中有一个JSON脚本,它将变量发送到python。 然后python抓住了它。
我再说一遍,一切在本地都像魅力一样。
==================================
--------编辑新文件------ 我试图将memcache的位置更改为指向“ settings.py”中的服务器:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'MY_IP:11211',
}
}
但是这种尝试没有用 我可以正常打印到系统日志,值不为空
答案 0 :(得分:1)
我相信cache.get('ratings')
无法找到字符串“ ratings”,因此默认情况下它返回NoneType,因此它无法使用.find属性。
您应该尝试打印缓存以查看其中是否有字符串评级
答案 1 :(得分:1)
错误是我没有首先安装memcached。即使我使用此命令来安装它:
pip3 install python-memcached
然后我改用另一个命令:
sudo apt install memcached
现在一切正常:)