2012-08-23 3 views
2

views.py에서 사용자를 방지하기 위해

def like(request,option="food",restaurant = 1): 
    if request.is_ajax: 
     rest = 'rest' 
     like = '%s-like' % str(option) 

     if restaurant in request.session: 

      if like not in request.session[restaurant]: 
       request.session[restaurant][like] = str(like) 
      else: 
       return HttpResponse('warning') 
     if restaurant not in request.session: 
      request.session[restaurant] = restaurant 


     r = Restaurant.objects.get(pk=restaurant) 
     if option == "food": 
      r.food_likes +=1 
      r.save() 
      return HttpResponse(str(r.food_likes)) 
     elif option=="service": 
      r.service_likes +=1 
      r.save() 
      return HttpResponse(str(r.service_likes)) 
     elif option == "ambience": 
      r.ambience_likes +=1 
      r.save() 
      return HttpResponse(str(r.ambience_likes)) 
    else: 
     return redirect(request.META.get('HTTP_REFERER')) 

오류

'unicode' object does not support item assignment 

라인

request.session[restaurant][like] = str(like) 

의심 세션을 설정하는 동안 내가 문제를 얻고

변수 문자열을 사용하는 키 6,내가 내 '레스토랑'키? '와 같은'세션 키를 설정하기로하고, 어떻게장고 세션은 다수의 투표

답변

0

먼저 request.session[restaurant] = dict()

그런 다음 할당을 할 빈 사전을 만들 수 있도록 도와주십시오 request.session[restaurant][like] = str(like)