Beispiel #1
0
 def POST(self, post_id=None):
     """保存日志信息"""
     import pytz
     
     if post_id:
         post = Post.get_by_id(int(post_id))
     else:
         post = Post()
     
     inp = web.input()
     
     post.title = inp.title
     post.alias = inp.alias
     post.content = inp.content
     post.excerpt = inp.excerpt
     if inp.get('date'):
         tz = pytz.timezone(blog.timezone)
         date = inp.get('date')
         date = datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
         date_tz = date.replace(tzinfo=tz)
         # datetime = time.mktime(date)
         post.date = date_tz
     post.allow_comment = bool(inp.get('allow_comment'))
     post.allow_ping = bool(inp.get('allow_ping'))
     post.hidden = bool(inp.get('hidden'))
     
     # 以下分类代码写的比较乱
     # 文章添加分类最简单,直接分类统计加1
     # 分类修改则取得原分类减1,新分类加1
     # 删除分类则将旧分类减1
     category_key = inp.get('category')
     if category_key:
         category = Category.get(category_key)
     if post.category:
         if unicode(post.category.key()) != unicode(category_key):
             post.category.count = post.category.count - 1
             post.category.save()
             if category_key:
                 post.category = category
                 category.count = category.count + 1
                 category.save()
             else:
                 post.category = None
     elif category_key:
         post.category = category
         category.count = category.count + 1
         category.save()
     
     tags = inp.tags
     if tags:
         tags = tags.split(',')
         post.tags = tags
         for tag in tags:
             Tag.add(tag)
     post.save()
     
     clear_cache()
     
     from google.appengine.api import taskqueue
     queue = taskqueue.Queue()
     url = '/task/ping_sites'
     ping_task = taskqueue.Task(countdown=5, url=url)
     queue.add(ping_task)
     
     raise web.seeother('/admin/posts')