我的项目在本地计算机上运行正常,但是当我将其部署到服务器时出现错误
异常值:列表索引超出范围
异常位置:get_context_data中的/var/www/bias_experiment/src/survey/views.py,第151行
正如我所说,该项目在我的本地计算机上运行良好。当我偶尔遇到此错误时,我只需重新同步始终修复该错误的数据库即可。
我尝试了很多事情:
- 重新同步服务器上的数据库
python manage.py syncdb
- 重新启动我的服务器
sudo service apache2 restart
这没有效果,所以我
- 完全删除了我部署的项目
sudo rm -rf my_project
- 删除旧数据库
DROP DATABASE my_db_name
- 再次上传我的项目
- 创建了一个新的数据库
CREATE DATABASE my_db_name
- 将其与项目“python manage.pysyncdb”同步
- 冉收集静态
python manage.py collectstatic
- Ran
a2ensite
- 重新启动我的服务器
sudo service apache2 restart
但是我仍然遇到同样的错误。我不知道为什么代码在本地工作但在我的生产服务器上崩溃。
有任何想法吗?提前致谢
- 本机:Python 2.7.5、Django 1.6.2
- 服务器:Ubuntu 12.4、Apache 2.2.22、Python 2.7.3、Django 1.6
编辑:这是来自views.py的有问题的代码。第 128 - 156 行
class SurveyWizardOne(SessionWizardView):
def get_context_data(self, form, **kwargs):
context = super(SurveyWizardOne, self).get_context_data(form, **kwargs)
if self.steps.current in ['5','6','7','8','9','10','11','12','13','14','15','16', '17']:
print '\nThe available list of Path_One images is', PATH_ONE_IMAGES
step = int(self.steps.current)
if step in (5, 6, 7):
image = random.choice(PATH_ONE_IMAGES)
images.insert(step - 5, image)
PATH_ONE_IMAGES.remove(image)
context['display_image'] = image
slider_value = self.request.POST.get('slider_value')
if slider_value is not None:
slider_DV_values.insert(step - 5, slider_value)
elif step == 8:
slider_value = self.request.POST.get('slider_value')
if slider_value is not None:
slider_DV_values.insert(step - 5, slider_value)
context['first_image'] = images[0]
context['second_image'] = images[1]
context['third_image'] = images[2]
context['first_slider'] = slider_DV_values[0]
context['second_slider'] = slider_DV_values[1]
context['third_slider'] = slider_DV_values[2]
elif step in (9, 10, 11):
image = random.choice(PATH_ONE_IMAGES)
images.insert(step - 6, image)
PATH_ONE_IMAGES.remove(image)
context['display_image'] = image
Thanks