Asi*_*nox 1 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()
Run Code Online (Sandbox Code Playgroud)
template.html
views: {{object.views}}
Run Code Online (Sandbox Code Playgroud)
template.html显示:
(+: (DEFAULT: ), 1)
Run Code Online (Sandbox Code Playgroud)
我无法想象为什么
谢谢你们
我认为你不能这样使用F().它用于filter表达式,您可以使用它将一个字段与同一模型上的另一个字段进行比较,也可以在表达式中使用它来update增加字段的位置:
Robado.objects.filter(foo=bar).update(views=F('views')+1)
Run Code Online (Sandbox Code Playgroud)
但我不明白你为什么要在这里使用它,你已经拥有了这个对象.直接引用属性更容易:
object.views = object.views + 1
Run Code Online (Sandbox Code Playgroud)
甚至更简单:
object.views += 1
Run Code Online (Sandbox Code Playgroud)