Python 如何在views.py类中添加页面计数而不出错[Django]

Python 如何在views.py类中添加页面计数而不出错[Django],python,django,Python,Django,我使用Django/Python创建了一个简单的博客应用程序 我有以下views.py代码: from django.shortcuts import render from django.views.generic import ListView, DetailView from .models import Post # Create your views here. #def home(request): # return render(request, 'home.htm

我使用Django/Python创建了一个简单的博客应用程序

我有以下views.py代码:

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Post

# Create your views here.
#def home(request):
#        return render(request, 'home.html', {})

class HomeView(ListView):
    model = Post
    template_name = 'home.html'
    ordering = ['-published_date']
    paginate_by = 9

class ArticleView(DetailView):
    model = Post
    model.post_view = model.post_view + 1
    model.save()
    template_name = 'article.html'
My models.py代码如下所示:

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
from ckeditor_uploader.fields import RichTextUploadingField
from ckeditor.fields import RichTextField
import math

# Create your models here.
# https://stackoverflow.com/questions/29536180/django-blog-adding-published-date-field-to-new-posts-and-ability-to-login-as-non
class Post(models.Model):
    title = models.CharField(max_length=300)
    keywords = models.CharField(max_length=300, default="default keywords")
    author = models.ForeignKey('UserProfile', on_delete=models.CASCADE)
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(auto_now_add=True,
            blank=False, null=False)
    language = models.ForeignKey('LanguageCategory', on_delete=models.CASCADE)
    image = models.ImageField(upload_to='blog_images/', default='blog_images/image.png')
    body = RichTextField(blank=False, null=False)
    post_view = models.IntegerField(default=0, null=False, blank=False)
尝试运行服务器时,出现以下错误:

ine15,in
类ArticleView(详细视图):
文件“/PATH/views.py”,第17行,在ArticleView中
model.post\u视图=model.post\u视图+1
TypeError:不支持+:“DeferredAttribute”和“int”的操作数类型

我猜我得到上述错误是因为我没有在views.py中正确地更新post class模型的post\u视图。如何在views.py中修改ArticleView类以正确更新post对象的post\u view变量以获取博客文章的计数?

覆盖
ArticleView
类的
获取(…)
方法

class ArticleView(DetailView):
    model = Post
    template_name = 'article.html'

    def get(self, request, *args, **kwargs):
        response = super().get(request, *args, **kwargs)
        self.object.post_view += 1
        self.object.save()
        return response
class ArticleView(详细视图):
型号=员额
模板名称='article.html'
def get(自我、请求、*args、**kwargs):
response=super().get(请求,*args,**kwargs)
self.object.post_视图+=1
self.object.save()
返回响应
这里,
self.object
是正在检索的
Post
实例

class ArticleView(DetailView):
    model = Post
    template_name = 'article.html'

    def get(self, request, *args, **kwargs):
        response = super().get(request, *args, **kwargs)
        self.object.post_view += 1
        self.object.save()
        return response