我正在使用get_context_data
方法返回SessionWizardView中的变量。但是,当我尝试返回five_image
,six_image
或`seven_image'时,我仍然收到波纹管错误。转让之前引用Django:在分配之前引用的局部变量'five_image'
局部变量“five_image”
我无法理解的是,每个变量都被清楚地分配一个值,这是我知道的作品,因为我打印到终端。
我试图做
我想存储其显示在5,6和我的形式在以后页面上使用的7页的图像的名称。
path_one_images = ['P1D1.jpg', 'P2D2.jpg', 'P3D3.jpg', 'P4D4.jpg', 'P5D5.jpg/', 'P6D6.jpg', 'P7D7.jpg', 'P8D8.jpg', 'P9D9.jpg']
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','9','10','11','13','14','15']:
display_image = random.choice(path_one_images)
if self.steps.current == '5':
five_image = display_image
elif self.steps.current == '6':
six_image = display_image
elif self.steps.current == '7':
seven_image = display_image
steps = ['5','6','7','9','10','11','12','13','14','15']
context.update({'display_image': display_image,
'five_image': five_image,
'six_image': six_image,
'seven_image': seven_image,
'steps': steps
})
path_one_images.remove(display_image)
if self.steps.current in ['8','12','16']:
print '\n\n\n\nYou are on step', self.steps.current
return context
任何帮助一如既往,非常appriciated。
您没有初始化if语句之外的各种局部变量。因此,这个问题 – karthikr 2014-09-26 19:01:55