有一项任务是为了教育目的添加查看帖子的能力(有作弊的可能性)。我在网上找到这段代码:
模型.py:
class PageHit(models.Model):
url = models.CharField(max_length=1000, unique=True)
count = models.PositiveIntegerField(default=0)
意见.py:
from django.db.models import F
from functools import wraps
from django.db import transaction
def counted(f):
@wraps(f)
def decorator(request, *args, **kwargs):
with transaction.atomic():
counter, created = PageHit.objects.get_or_create(url=request.path)
counter.count = F('count') + 1
counter.save()
return f(request, *args, **kwargs)
return decorator
这个装饰器环绕view显示帖子。
代码运行良好,当你点击链接转到帖子时,浏览量确实增加了,但我不明白这个功能是如何工作的。请解释。