Django 增量视图 + 1

发布于 2024-10-20 08:18:44 字数 465 浏览 0 评论 0原文

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

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)

我无法想象为什么

谢谢你们

i dont know why this time i cant show the "number of views" of a items, i was doing this before but in this project i cant

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}}

The template.html is showing:

 (+: (DEFAULT: ), 1)

i cant imagine why

Thanks you guys

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

_蜘蛛 2024-10-27 08:18:44

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

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

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

object.views = object.views + 1

或者更简单:

object.views += 1

I don't think you can use F() like this. It's for use in filter expressions, where you can use it to compare one field with another field on the same model, and in update expressions, where you can increment a field in place:

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

but I don't see why you're trying to use it here, where you already have the object. It's easier just to reference the attribute directly:

object.views = object.views + 1

or even more simply:

object.views += 1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文