2014-09-29 4 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

Это: 'five_image =" P5D5.jpg "' присваивает 'five_image'' 'str', а не' tuple'. Что вы ожидаете от 'five_image' и' display_image' на самом деле, когда эта функция будет выполнена? – dano

+0

Я хочу, чтобы five_image постоянно принимало значение display_image – Deepend

+0

Наличие переменной с постоянным значением, которое невозможно изменить, невозможно в python. – SethMMorton

ответ

1

Python динамически типизирован. Нет такой вещи, как «кортеж переменной», есть только имена. Если вы хотите кортеж быть назначены на имя, вам нужен кортеж на РИТ задания:

five_image = (display_image,) 
0

Вы не можете определить кортеж, как мы можем определить лист

five_image = [] 

вы должны поместите значение кортежа в круглую скобку с запятой, если это одно значение.

five_image = (display_image,) 

Надеюсь, это сработает для вас.

Смежные вопросы