Нужно отредактировать декоратор для записи в БД

есть модель куда должны записываться посты и авторы их написавшие

class PostsStatistic(models.Model):
    article = models.OneToOneField(Post, on_delete=models.CASCADE, primary_key=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE) # внешний ключ на статью
    date = models.DateField('Дата', auto_now_add=True) # дата
    views = models.IntegerField('Просмотры', default=1) # количество просмотров

далее я использую пример кода декоратора

from functools import wraps
from django.db.models import F
from django.db import transaction
from django.utils import timezone
from .models import  User, Post, PostsStatistic


def counted(f):
    @wraps(f)
    def decorator(request, *args, **kwargs):
        with transaction.atomic():
            counter, created = PostsStatistic.objects.get_or_create( author=request.user.author, article=request.post.id,  date=timezone.now())
            counter.views = F('views') + 1
            counter.save()
        return f(request, *args, **kwargs)
    return decorator

но данный декоратор естественно не работает... а как правильно переписать его не понимаю


Ответы (0 шт):