def post(self, *args): try: keywords = self.get_argument('keywords') except: keywords = None if keywords is not None: Calculate.search_add_keyword(keywords) try: categories = Category.get() cate_result = Category.find_by_name(keywords) tag_result = Tag.find_by_name(keywords) except Exception as e: self.send_error(404) send_error_email('Search Error', str(e)) try: C = cate_result['diaries'] except: C = [] try: T = tag_result['diaries'] except: T = [] real_result = list(C+T) """ To combine tag_result and category_result first make an empty list to save filtered_result and to make faster, make another empty list to save diary_id to ensure not append repeat diary """ filtered_result = [] cache_did = [] for i in real_result: if cache_did == []: cache_did.append(i['did']) filtered_result.append(i) else: if i['did'] not in cache_did: cache_did.append(i['did']) filtered_result.append(i) profile = Account.get() if filtered_result != []: self.render('Search/result.html', detail=filtered_result, categories=categories, profile=profile) else: filtered_result = None self.render('Search/result.html', detail=filtered_result, categories=categories, profile=profile) else: self.redirect('/')
def post(self, *args): try: did = self.get_argument('did') title = self.get_argument('title') content = self.get_argument('content') c_name = self.get_argument('category_name') c_id = self.get_argument('c_id') except Exception as e: refer = self.request.headers.get('Referer') self.redirect(refer) try: tags = self.get_argument('tags') except: tags = None if tags: splited_tags = tags.split(',') else: splited_tags = None """" determin whether there is a exist undefine category if there is not, create it else use its c_id """ if c_id == 'none': detail = Category.find_by_name(c_name) try: c_id = detail.get('_id') except: c_id = Category.new(c_name) try: Diary.update(did, title, content, c_name, c_id, splited_tags) except Exception as e: print str(e) self.redirect('/admin/all-post/1')