Django增加视图+ 1

时间:2011-03-05 17:16:07

标签: django templates models

我不知道为什么这次我不能显示一个项目的“观看次数”,我以前这样做但是在这个项目中我不能

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)

我无法想象为什么

谢谢你们

1 个答案:

答案 0 :(得分:5)

我认为你不能像这样使用F()。它可以在filter表达式中使用,您可以使用它来将一个字段与同一模型上的另一个字段进行比较,并在update表达式中,您可以在其中增加字段:

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

但我不明白你为什么要在这里使用它,你已经有了这个对象。直接引用属性更容易:

object.views = object.views + 1

甚至更简单:

object.views += 1