2014-09-29 463 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,) 

希望它能爲你工作。