Example #1
0
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})
Example #2
0
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
Example #3
0
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})
Example #4
0
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 })
Example #5
0
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})
Example #6
0
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})