【Django3.0功能开发】apps篇:views中文章阅读自动记录阅读数通用方法

内容介绍

通常在新闻管理平台中需要记录该单篇文章阅读的数量,进行总数的统计业务。同样自动递增的点赞数、转发数同理进行处理即可。

models.py

# 文章内容管理
class ArticleInfo(models.Model):
	......
    praise_num = models.IntegerField(default=0, verbose_name='点赞数', help_text="点赞数")
    read_num = models.IntegerField(default=0, verbose_name='浏览数', help_text="浏览数")
    fav_num = models.IntegerField(default=0, verbose_name='收藏数', help_text="收藏数")
    ......

    class Meta:
        verbose_name = '新闻基础信息'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.article_title

views.py

在模型对应的view的class中添加即可

# 定义全部文章获取方式info
class ArticleInfoListViewSet(viewsets.GenericViewSet):
	......
	
    # 这里实现范文过后阅读数自动+1 重写retrieve方法
    def retrieve(self, request, *args, **kwargs):
        instance = self.get_object()
        instance.read_num += 1  # 接口通过浏览详情在read_num中自动+1
        instance.save()
        serializer = self.get_serializer(instance)
        return Response(serializer.data)

猜你喜欢

转载自blog.csdn.net/qq_20288327/article/details/110792717