def add_answer(request): question_id=request.POST["questionid"] content=request.POST["content"] answer=Answer(user=request.user,question_id=question_id,content=content) answer.submit_answer(request.user) html_str=render_to_string('answerlist.html',{'answers_list':[answer]}) return HttpResponse(html_str)
def add_answer(**kwargs): answer=Answer(**kwargs) answer_id=get_next_answer_id() answer.id=answer_id #answer.addtime=datetime.now() load_answer_by_answer(answer) return answer_id
def add_answer(**kwargs): answer = Answer(**kwargs) answer_id = get_next_answer_id() answer.id = answer_id #answer.addtime=datetime.now() load_answer_by_answer(answer) return answer_id
def get_answers_from_redis(question_id, limit=0, skip=0, user_id=None): field = [ "id", "content", "addtime", "user_id", "commentcount", "favorcount", "opposecount" ] if not question_client.exists(QUESTION_ANSWER_PREFIX + str(question_id)): load_question_answer_by_id(question_id) answer_id = None if limit: answer_id = question_client.lrange( QUESTION_ANSWER_PREFIX + str(question_id), skip + 1, limit + skip + 1) else: answer_id = question_client.lrange( QUESTION_ANSWER_PREFIX + str(question_id), 0, -1) answer_id = [i for i in answer_id if i != "-1"] if answer_id: answers = [] answer_list = [ question_client.hmget(ANSWER_PRFIX + str(i), field) for i in answer_id if i != '-1' ] for answer in answer_list: an=Answer(id=answer[0],content=answer[1],addtime=get_datetime(answer[2]),user=get_user_by_id(answer[3]),commentcount=int(answer[4]),favorcount=\ int(answer[5]),opposecount=int(answer[6])) answers.append(an) if user_id: if not question_client.exists(USER_FAVOR_ANSWER_PREFIX + str(user_id)): load_favor_answer(user_id) question_client.sadd(TEMP_PREFIX + str(user_id), *answer_id) #import pdb;pdb.set_trace() favors = question_client.sinter( TEMP_PREFIX + str(user_id), USER_FAVOR_ANSWER_PREFIX + str(user_id)) for favor in favors: for answer in answers: if answer.id == favor: answer.evaluation = 1 answer.eid = int( question_client.hget( ANSWEREVALUATION_PRFIX + "a:" + str(answer.id) + "u:" + str(user_id), "id")) if not question_client.exists(USER_FAVOR_ANSWER_PREFIX + str(user_id)): load_oppose_answer(user_id) opposes = question_client.sinter( TEMP_PREFIX + str(user_id), USER_OPPOSE_ANSWER_PREFIX + str(user_id)) for oppose in opposes: for answer in answers: if answer.id == oppose: answer.evaluation = 2 answer.eid = int( question_client.hget( ANSWEREVALUATION_PRFIX + "a:" + str(answer.id) + "u:" + str(user_id), "id")) question_client.delete(TEMP_PREFIX + str(user_id)) return answers return None
def get_answer_by_answer_id(answer_id): field = [ "id", "content", "addtime", "user_id", "commentcount", "favorcount", "opposecount", "question_id" ] if not question_client.exists(ANSWER_PRFIX + str(answer_id)): return load_answer_by_id(answer_id) else: answer = question_client.hmget(ANSWER_PRFIX + str(answer_id), field) an=Answer(id=answer[0],content=answer[1],addtime=get_datetime(answer[2]),user=get_user_by_id(answer[3]),commentcount=int(answer[4]),favorcount=\ int(answer[5]),opposecount=int(answer[6]),question=get_question_from_redis(answer[7])) return an
def save(self, answer_set): from quest.models import Answer choices = self.cleaned_data['choice'] if self._instance is not None: answer = self._instance else: answer = Answer() answer.text = '' answer.answer_set = answer_set answer.question = self._question answer.save() answer.choices = choices return answer
def get_activity_list(self,userid,**kwargs): """获取好友最新动态 使用了存储过程 目前动态有0、1、2、3四类 分别代表 提问、回答问题、关注问题、赞或反对问题 """ activity_list=[] question_submit_count=0 answer_count=0 page=kwargs.pop('page',1) pagecount=kwargs.pop('pagecount',15) cursor=connection.cursor() cursor.callproc("sp_friendactiviy",(userid,(page-1)*15,pagecount)) for row in cursor.fetchall(): #import pdb;pdb.set_trace() if row[0]==0: question=Question(id=row[13],title=row[14]) user=User(id=row[15],name=row[16],surname=row[17],avatar=row[18]) question.user=user activity_list.append({'activitytype':row[0],'addtime':row[1],"data":question,"fuser":User(id=row[20],name=row[21],\ surname=row[22],avatar=row[23])}) question_submit_count+=1 elif row[0]==1: answer=Answer(id=row[3],content=row[4],addtime=row[5],commentcount=row[6],favorcount=row[7],opposecount=row[8]) answer.user=User(id=row[9],name=row[10],surname=row[11],avatar=row[12]) answer.question=Question(id=row[13],title=row[14],user=User(id=row[15],name=row[16],surname=row[17],avatar=row[18])) activity_list.append({'activitytype':row[0],'addtime':row[1],"data":answer,"fuser":User(id=row[20],name=row[21],\ surname=row[22],avatar=row[23])}) answer_count +=1 elif row[0]==2: follow=QustionFollow(id=row[19]) question=Question(id=row[13],title=row[14]) user=User(id=row[15],name=row[16],surname=row[17],avatar=row[18]) question.user=user follow.question=question activity_list.append({'activitytype':row[0],'addtime':row[1],"data":follow,"fuser":User(id=row[20],name=row[21],\ surname=row[22],avatar=row[23])}) elif row[0]==3: evalue=AnswerEvaluation(status=row[2]) answer=Answer(id=row[3],content=row[4],addtime=row[5],commentcount=row[6],favorcount=row[7],opposecount=row[8]) answer.user=User(id=row[9],name=row[10],surname=row[11],avatar=row[12]) answer.question=Question(id=row[13],title=row[14],user=User(id=row[15],name=row[16],surname=row[17],avatar=row[18])) evalue.answer=answer activity_list.append({'activitytype':row[0],'addtime':row[1],"data":evalue,"fuser":User(id=row[20],name=row[21],\ surname=row[22],avatar=row[23])}) return {"activity_list":activity_list,"statistics":{"submit_question":question_submit_count,"answer":answer_count}}
def insert_solr(solrtype, **kwargs): """对象序列化问题尚未解决 json or pickle 目前使用传递字典代替""" sleep(2) solr = None obj = None try: if solrtype == "answer": solr = AnswerSolr() obj = Answer(**kwargs) #obj=Answer(id=id,content=content,question_id=question_id,user_id=user_id) elif solrtype == "question": solr = QuestionSolr() obj = Question(**kwargs) elif solrtype == "user": solr = UserSolr() obj = User(**kwargs) solr.add(obj) return True except Exception, e: print e return e