2014-09-29 243 views
0

我想将一个变量display_image的值赋给一个元组five_image,并通过get_context_data方法将它返回给一个html页面。给一个元组赋值

我知道下面context.update工作时,我硬编码通过five_image = "P5D5.jpg";元组正确的值返回页面

下方的打印功能也工作并打印five_image到终端的价值。

那么为什么两部分在一起不起作用?

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']: 

       display_image = random.choice(path_one_images) 

       if self.steps.current == '5': 

        five_image =(); 
        five_image = display_image 
        print 'this is five_image', five_image 

       context.update({'display_image': display_image, 
           'five_image': five_image, 
           }) 

       path_one_images.remove(display_image) 

      return context 
+1

This:'five_image =“P5D5.jpg”'将'five_image'赋给'str',而不是'tuple'。当这个函数完成时,你期望'five_image'和'display_image'看起来像什么? – dano 2014-09-29 15:24:27

+0

我希望five_image永久取得display_image的值 – Deepend 2014-09-29 15:35:13

+0

让一个变量具有不可更改的永久值在python中是不可能的。 – SethMMorton 2014-09-29 15:48:17

回答

1

Python是动态类型的。没有“元组变量”这样的东西,只有名字。如果你想有一个元组被分配给一个名字,你需要在赋值的RHS一个元组:

five_image = (display_image,) 
0

不能定义元组做为我们可以定义列表

five_image = [] 

你必须如果它是单一值,则用逗号将元组值置于圆括号中。

five_image = (display_image,) 

希望它能为你工作。