def index(request): """Q&A首页""" name = request.session.get("name") qtype = request.GET.get("type") if qtype == "top": questions = Question.objects.all() else: # 显示最新 questions = Question.objects.all() # 分页 paginator = MyPaginator(questions, 10) page = request.GET.get("page") try: paginator.page(page) except PageNotAnInteger: paginator.page(1) except EmptyPage: paginator.page(paginator.num_pages) gol_error = request.GET.get("error") if name: # 当登陆时传递名字 return render(request, "index.html", {"questions": paginator, "name": name.split()}) return render(request, "index.html", {"questions": paginator, "error": gol_error})
def mypaginator(request, questions, n): paginator = MyPaginator(questions, n) page = request.GET.get('page') try: paginator.page(page) except PageNotAnInteger: paginator.page(1) except EmptyPage: paginator.page(paginator.num_pages) return paginator
def top(request): """TOP""" name = request.session.get('name') qtype = request.GET.get('type') questions = Question.objects.all().order_by('-q_times') # 分页 paginator = MyPaginator(questions, 10) page = request.GET.get('page') try: paginator.page(page) except PageNotAnInteger: paginator.page(1) except EmptyPage: paginator.page(paginator.num_pages) gol_error = request.GET.get('error') if name: # 当登陆时传递名字 return render(request, 'index.html', {'questions': paginator, 'name': name.split()}) return render(request, 'index.html', {'questions': paginator, 'error': gol_error})
def search(request): """搜索问题""" search_type = request.GET.get('type') q = request.GET.get('q') if not search_type: search_type = "question" if request.session.get("name"): name = request.session.get("name").split("&") else: name = None if search_type == "question": questions = Question.objects.filter(title__icontains=q) paginator = mypaginator(request, questions, 10) return render(request,'search.html',{'questions': paginator,'q':q,'flag':'question',"name":name}) elif search_type == "people": users = User.objects.filter(name__contains=q) return render(request, "search.html", {'users': users, 'q': q, 'flag': 'people', "name": name}) else: topics = QuestionType.objects.filter(name__icontains=q) try: questiontype = QuestionType.objects.get(name=q) questions = questiontype.question_set.all() except Exception: questions = [] questions_num = len(questions) # 共多少问题 paginator = MyPaginator(questions, 10) page = request.GET.get('page') try: paginator.page(page) except PageNotAnInteger: paginator.page(1) except EmptyPage: paginator.page(paginator.num_pages) # questions = Question.objects.filter(q_type = q) return render(request,"search.html",{'topics': topics, "q": q, 'flag':'topic', "name":name, 'questions': paginator, 'questions_num':questions_num })
def index(request): """Q&A首页""" name =request.session.get('name') # 显示最新 questions = Question.objects.all() # 分页 paginator = MyPaginator(questions, 10) page = request.GET.get('page') try: paginator.page(page) except PageNotAnInteger: paginator.page(1) except EmptyPage: paginator.page(paginator.num_pages) gol_error = request.GET.get('error') # 全局变量 if name: # 当登陆时传递名字 return render(request, 'index.html', {'questions': paginator, 'name': name.split()}) return render(request, 'index.html', {'questions': paginator, 'error': gol_error})