我不知道为什么这次我不能显示一个项目的“观看次数”,我以前这样做但是在这个项目中我不能
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)
我无法想象为什么
谢谢你们
答案 0 :(得分:5)
我认为你不能像这样使用F()
。它可以在filter
表达式中使用,您可以使用它来将一个字段与同一模型上的另一个字段进行比较,并在update
表达式中,您可以在其中增加字段:
Robado.objects.filter(foo=bar).update(views=F('views')+1)
但我不明白你为什么要在这里使用它,你已经有了这个对象。直接引用属性更容易:
object.views = object.views + 1
甚至更简单:
object.views += 1