In [1]: from django.db.models import F
In [2]: from forum.models import Post
In [3]: post = Post.objects.get(id=1)
In [4]: post.view_count = F('view_count') + 1
In [5]: post.save()
In [6]: post.view_count
Out[6]: <CombinedExpression: F(view_count) + Value(1)>
In [7]: post = Post.objects.get(id=1)
In [8]: post.view_count
Out[8]: 3
Run Code Online (Sandbox Code Playgroud)
保存帖子后,它返回组合表达式.
我想要确切的结果(3).
是否可以不再调用get方法?
我们需要确定对象是否在模型中可用。
有两种方法可以检查是否存在,
MyModel.objects.filter(pk=pk).exists()
Run Code Online (Sandbox Code Playgroud)
要么
get_object_or_404(MyModel, pk=pk)
Run Code Online (Sandbox Code Playgroud)
哪个查询更好更有效?
注意:无需使用该对象(pk)执行任何操作。只想知道是否存在..