【发布时间】:2014-09-26 18:59:25
【问题描述】:
我正在使用get_context_data 方法在 SessionWizardView 中返回变量。但是,当我尝试返回 five_image、six_image 或 `seven_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
任何帮助都一如既往,非常感谢。
【问题讨论】:
-
您没有在 if 语句之外初始化各种局部变量。因此问题
标签: django python-2.7 django-forms