【问题标题】:Django increment views + 1Django 增加视图 + 1
【发布时间】:2011-07-09 11:44:36
【问题描述】:

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

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()

模板.html

views: {{object.views}}

template.html 正在显示:

 (+: (DEFAULT: ), 1)

我无法想象为什么

谢谢大家

【问题讨论】:

    标签: django templates models


    【解决方案1】:

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

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

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

    object.views = object.views + 1
    

    或者更简单:

    object.views += 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多