Я пытаюсь добавить счетчик просмотров к своим сообщениям с помощью выражений F и показать количество просмотров для каждого сообщения в django admin. Но, к сожалению, это не работает должным образом. Я был бы рад, если кто-нибудь скажет мне, что не так в моем коде.
views.py:
class Details(generic.DetailView):
model = Post
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['essential_posts'] = Post.objects.filter(essential=True).order_by('-created_on')
return context
def postviewcount(request, slug):
post = Post.objects.get(slug=slug)
post.views = F('views') + 1
post.save()
template_name = 'post-detail.html'
models.py:
STATUS = (
(0,"Draft"),
(1,"Publish")
)
class Post(models.Model):
title = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=200, unique=True)
author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
updated_on = models.DateTimeField(auto_now= True)
content = models.TextField()
image = models.ImageField(upload_to = 'image/', blank=True)
created_on = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(choices=STATUS, default=0)
essential = models.BooleanField('Essential News', default = False)
views = models.PositiveIntegerField(default=0)
class Meta:
ordering = ['-created_on']
def __str__(self):
return self.title