我试图在视图中获取会话变量,但我没有太多运气。 我收到的错误是:
列表索引必须是整数,而不是str
我设置了以下会话变量/ dict:
u'bookingContents' :
{
u'bookingID': 40,
u'bookingOptionContents': {
u'activityID': 1,
u'activityName': u'Echo Park legging races',
u'activityShortDescription': u'YOLO umami occupy, Echo Park leggings meh Kickstarter cardigan. ',
u'activityThumbnail': u'/media/activity/1/thumb_test.jpg',
u'optionCost': 20,
u'optionDayOfWeek': u'Tuesday',
u'optionEndTime': u'12:00',
u'optionStartDate': u'19/01/2015',
u'optionStartTime': u'06:00',
u'quantity': 9},
u'bookingOptionID': 1}
我试图按标签(最好)访问bookingID和bookingOptionsContents.quantity值。
我的观看代码如下(对于第一个bookingID值):
if int(request.session.get('bookingContents.bookingID', False)) == somevalue:
我也尝试过:
if int(request.session.get('[bookingContents']['bookingID'], False)) == somevalue:
但我似乎无法达到价值观。
事情在模板中工作,我可以通过以下方式成功检索值:
{{request.session.bookingContents.bookingOptionContents.quantity}}
{{request.session.bookingContents.bookingID}}
如何在视图中获取bookingID和数量的值?
答案 0 :(得分:0)
您不能在视图中使用点表示法。我在这里遵循EAFP
风格:
try:
value = int(request.session['bookingContents']['bookingID'])
except (KeyError, ValueError) as e:
value = None