2011-03-05 3 views
1

내가 이번에는 내가, 내가 전에이 일을 한 항목의 "뷰의 수를"보여 질수 이유를 잘 모릅니다하지만이 프로젝트에 내가장고 증가 전망 + 1

def getAuto(request,marca,slug,id): 
    from django.db.models import F 
    object = get_object_or_404(Robado,marca__slug=marca,modelo__slug=slug,pk=id,publico=True) 
    object.views= F('views')+1 
    object.save() 

template.html

을 캔트
views: {{object.views}} 

template.html는 보여주고있다 :

(+: (DEFAULT:), 1) 

내가 상상하지 못할 이유

고마워요

답변

5

저는 F()을 이와 같이 사용할 수 있다고 생각하지 않습니다. 그것은 filter 표현, 같은 모델의 다른 필드가 하나 개의 필드를 비교하는 데 사용할 수 있습니다에서 사용하기 위해, 그리고 update 표현, 당신은 장소에 필드를 증가 할 수있는 :

Robado.objects.filter(foo=bar).update(views=F('views')+1) 

하지만 난하지 않습니다 여기에 왜 객체를 이미 가지고 있는지 여기에서 사용하려고하는지보십시오.

object.views = object.views + 1 

또는 더 간단 :

object.views += 1 
그냥 직접 속성을 참조하는 것이 더 쉽습니다