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)
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 })
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 })
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)