示例#1
0
def question(request, questionId):#page with answers
  profile = Profile.objects.get_profile(request.user)
  question = get_object_or_404(Question, pk=questionId)
  tbags = Tag.objects.all()
  answers = Answer.objects.get_answers_to_question(questionId)
  page, paginator = paginate(answers, request)
  form = AnswerForm()
  error_message = ''

  if request.method == 'POST':
    form = AnswerForm(request.POST)
    if form.is_valid():
      Answer.objects.create_answer(profile, form.cleaned_data['answerTextField'], question)
      return redirect('/ask/question/' + str(questionId))
    else:
      error_message = form.errors  # 'Form\'s not valid'

  context = {
    'question': question,
    'answers': page,
    'paginator': paginator,
    'tags': tbags,
    'form': form,
    'error_message': error_message,
    'profile': profile,
    'user': request.user,
  }
  context.update(csrf(request))
  return render_to_response('question.html', context)
示例#2
0
def question(request):
    try:
        question_id = int(request.GET.get('id'))
    except ValueError:
        raise Http404("id не число")

    current_question = Question.objects.get(pk=question_id)

    if request.method == 'POST':
        if not request.user.is_authenticated:  # todo вернуть ошибку
            pass

        form = AnswerForm(request.POST)
        if form.is_valid():
            ans = Answer.objects.create(author=request.user, question=current_question, text=form.cleaned_data['text'])
            return HttpResponseRedirect(request.get_full_path())
        else:  # todo вернуть ошибку
            pass
    else:
        form = AnswerForm()

    list_answers = current_question.answer_set.all()

    context = {
        'list_answers': list_answers,
        'question': current_question,
        'form': form,
    }
    return render(request, 'question.html', context)
示例#3
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)
示例#4
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
                  })
示例#5
0
def question(request, question_id, page=None):
    ques = Question.objects.get(id=question_id)
    answers = ques.answer_set.all()
    answers_on_page = paginate(answers, request, 10, page)
    User = getAuthenticatedUser(request)
    if User != None:
        if request.POST:
            form = AnswerForm(request.POST)
            if form.is_valid():
                answer = form.saveAnswer(User, question_id)
                page = answers.count() / 10
                if (answers.count() % 10 != 0):
                    page += 1
                return redirect('/question/' + str(question_id) + '/' + str(page))
        else:
            form = AnswerForm()
    else:
        form = AnswerForm()
    return render(request, 'ask/question.html', {
	'answers': answers_on_page,
	'question': ques, 
	'page': page,
        'form' : form,
    })
示例#6
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
     })