示例#1
0
def question(request, qid, page=1):
    try:
        q = Question.objects.get_single(int(qid))
        answersObjs = Answer.objects.by_id(q.id)
        answers, page_range = paginate(answersObjs, 4, page)
        if request.method == "POST":
            form = AnswerForm(request.POST)
            if form.is_valid():
                answer, page = form.save(request, q)
                print(connection.queries)
                return HttpResponseRedirect('/question/' + str(q.id) + '/' +
                                            str(page))
        else:
            form = AnswerForm()
    except Question.DoesNotExist:
        raise Http404()
    context = {
        "question": q,
        "answers": answers,
        "page_range": page_range,
        "pag_url": 'questions',
        "form": form,
    }
    print(connection.queries)
    return render(request, 'question.html', context)
示例#2
0
 def post(self, request, id):
     try:
         profile = Profile.objects.get(user=request.user)
     except Profile.DoesNotExist:
         profile = Profile(user=request.user)
     q = Question.objects.get(pk=id)
     answers = Answer.objects.filter(question=q)
     answers = paginate(answers, request)
     form = AnswerForm(data=request.POST, user=profile, id=id)
     if form.is_valid():
         form.save()
         return HttpResponseRedirect("../question/" + str(id))
     return render(request, 'questions.html', {
         "question": q,
         "answers": answers,
         'form': form
     })
示例#3
0
def question(request, question_number):
    question = get_object_or_404(Question, id=question_number)
    since = request.GET.get('since')
    answers, since = Answer.objects.main(since, question)
    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid():
            if request.user.is_anonymous:
                answer = form.save(question_id=question_number)
            else:
                answer = form.save(user=request.user, question_id=question_number)
            question = answer.question
            return HttpResponseRedirect("/question/{}/".format(question.id))
    else:
        form = AnswerForm()
    return render(request, 'ask/question.html',
                  {
                      'answers': answers,
                      'question': question,
                      'since': since,
                      'form': form,
                      'username': request.user.username
                  })
示例#4
0
def question(request, **kwargs):
    qid = kwargs['qid']

    if qid is None:
        raise Http404()

    _question = Question.objects.get(pk=qid)

    _answers = Answer.objects.filter(question_id=qid)

    top_tags = get_popular_tags()
    best_members = get_best_members()

    answers, paginator = paginate(_answers, request)

    if request.method == 'POST':
        if not request.user.is_authenticated():
            response = redirect('login')
            response['Location'] += '?next=' + qid
            return response

        form = AnswerForm(request.POST)

        if form.is_valid():
            answer = form.save(commit=False)
            answer.question_id = qid
            answer.author = Profile.objects.get(user=request.user)
            answer.save()

            anchor = '#' + str(answer.pk)
            url = resolve_url('question', _question.pk)
            return redirect(url + anchor)
        else:
            form = AnswerForm()
    else:
        form = AnswerForm()

    context = {
        'question': _question,
        'top_tags': top_tags,
        'best_members': best_members,
        'paginator': paginator,
        'answers': answers,
        'form': form
    }

    return render(request, 'question.html', context)