首页 > micolog > 关于micolog的已发布文章计数导致的分页问题

关于micolog的已发布文章计数导致的分页问题

2009年8月21日 发表评论 阅读评论

使用micolog的过程中,发现blog记录的发表文章总数在某些情况下可能产生问题。这个数只增不减,并且有可能增加到超过实际的文章总数,使分页时候产生的最末几页没有文章。

下面所提要增加的代码,均为这两行代码,其实应该将这个层次抽象的更好的,但徐大的代码已经写成这样了,这代码风格,实在不敢恭维啊

g_blog.entrycount –= 1

g_blog.save()

1.文章删除后,没有对文章计数进行减少。修改admin.py中admin_enties类,post函数,在那个for循环里面,与entry.delete()左对齐,增加那两行代码(其实可以将第二行放在for外面优化一下)

2.在admin后台,将已存在的文章状态修改为非publish,没有对entrycount进行减少。修改admin.py中admin_entry类,post函数,大约590行的位置(改过不少,不知道具体在哪了),或者说就是那个if published的else分支最后,加上那两行代码

3.通过live writer将一个已经发表的文章修改为不发表时,没有对entrycount进行减少。修改api_rpc.py中metaWeblog_editPost函数,在最后的return上面,就是那个if publish的else分支,增加那两行代码

4.通过live writer删除文章时没有对entrycount进行减少。修改api_rpc.py中blogger_deletePost函数,在函数的最后(return那一行)加上那两行代码

通过修改上面五处,可以在一定程度上减少分页错误的问题。嗯,我说的就是一定程度上,因为page也是算做文章的一种,同时这个东东也参与到了对已发表文章的计数中。要想解决这个问题,需要做如下修改:

在model.py的Entry类,publish函数中,if newval的判断中的那个”if not self.published:”修改为”if (not published) and (self.entrytype == ‘post’):”

顺便说上一句,Entry的那个publish函数,newval为False的分支从来没有走到过,并且,那个分支的代码是有错误的…,不知道这个newval是做什么用的

---------------------------------------------------------------
本站作品根据创作共同协议进行授权, 转载时请务必以超链接形式标明文章原始出处
原文地址:http://www.mirecle.com/2009/08/21/the-article-has-been-published-on-the-micolog-count-caused-by-paging-problem.html
---------------------------------------------------------------

您可能会喜欢:

  1. 修复micolog的一个bug:Entry.publish函数
  2. 为micolog增加随机文章功能
  3. 修正micolog文章中前一post与后一post的混乱问题
  4. 关于micolog部署后第一次启动必然出错的问题
  5. 提供我改过的micolog代码下载
分类: micolog 标签:

  1. 2009年8月26日07:21 | #1

    技术文章太多。 >_<。 期待流水账!!

  1. 本文目前尚无任何 trackbacks 和 pingbacks.