Python 如何在views.py类中添加页面计数而不出错[Django]
我使用Django/Python创建了一个简单的博客应用程序 我有以下views.py代码: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
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