Django中的页面点击增加计数

发布于 2021-01-29 15:26:45

我有一个带IntegerFieldhit_count)的表,访问页面时(例如http://site/page/3),我希望hit_count数据库中记录ID
3的列增加1。

查询应类似于:

update table set hit_count = hit_count + 1 where id = 3

我可以使用标准Django模型约定来做到这一点吗?还是应该手动编写查询?

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果您使用的是Django
    1.1+,则只需使用F表达式

    from django.db.models import F
    ...
    MyModel.objects.filter(id=...).update(hit_count=F('hit_count')+1)
    

    这将执行单个原子数据库查询。

    正如gerdemb所说,您应该考虑将其放在中间件中以使其易于重用,以免混淆您的所有视图。




知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看