16 python django django-models
我有一个带IntegerField(hit_count)的表,当访问一个页面时(例如http://site/page/3),我希望hit_count数据库中的记录ID 3的列增加1.
查询应该像:
update table set hit_count = hit_count + 1 where id = 3
Run Code Online (Sandbox Code Playgroud)
我可以使用标准的Django模型约定吗?或者我应该手动编写查询?
Car*_*yer 31
如果你使用Django 1.1+,只需使用F表达式:
from django.db.models import F
...
MyModel.objects.filter(id=...).update(hit_count=F('hit_count')+1)
Run Code Online (Sandbox Code Playgroud)
这将执行单个原子数据库查询.
正如gerdemb所说,你应该考虑把它放在一个中间件中,以便它可以轻松重复使用,这样就不会让你的所有观点变得混乱.