def add_question(request): # Get the context from the request. context = RequestContext(request) # A HTTP POST? if request.method == 'POST': question_form = QuestionForm(request.POST) #choice_form = ChoiceForm(request.POST,question_form) # Have we been provided with a valid form? if question_form.is_valid(): # and choice_form.is_valid(): # Save the new category to the database. question_form.save(commit=True) #choice_form.save(commit=True) # Now call the index() view. # The user will be shown the homepage. return HttpResponseRedirect('/polls/') else: # The supplied form contained errors - just print them to the terminal. print question_form.errors#,choice_form.errors else: # If the request was not a POST, display the form to enter details. # form = QuestionForm() question_form = QuestionForm() choice_form = ChoiceForm() # Bad form (or form details), no form supplied... # Render the form with error messages (if any). return render_to_response('polls/add_question.html', {'question_form': question_form }, context)
def updateqn(request, id): polls = Question.objects.get(id=id) form = QuestionForm(request.POST, instance = polls) if form.is_valid(): form.save() return redirect('/polls/viewqn') return render(request, 'editqn.html', {'form': form})
def new_question(request): if request.method == 'POST': form = QuestionForm(request.POST) if form.is_valid(): form.save() messages.success(request, "Question ajoutée") else: messages.error(request, "Formulaire invalide") else: messages.error(request, "Formulaire non trouvé") return redirect('polls:list')
def question_create(request): if request.method == 'GET': return redirect(reverse_lazy('question_list')) poll_id = request.POST.get('poll') question_form = QuestionForm(request.POST) if question_form.is_valid(): question_form.save() return redirect(reverse_lazy('poll_item', args=[poll_id])) return render(request, 'question/form.html', {'form': question_form})
def add_question(request): if request.method == 'POST': form = QuestionForm(data=request.POST, user=request.user) if form.is_valid(): form.save(commit=True) return HttpResponseRedirect('/polls/') #return IndexView(request) else: print form.errors else: form = QuestionForm(user=request.user); return render(request, 'polls/add_question.html',{'form': form})
def question_update(request): if request.method == "POST": question_id = request.POST.get('record', '') poll_id = request.POST.get('poll') info = get_object_or_404(Questions, id=question_id) question_form = QuestionForm(request.POST, instance=info) if question_form.is_valid(): question_form.save() return redirect(reverse_lazy('poll_item', args=[poll_id])) return render(request, 'question/form.html', {'form': question_form})
def ask_question(req): if req.user.is_authenticated: if req.method == 'POST': form = QuestionForm(req.POST,profile=req.user.profile) if form.is_valid(): form.save() render_to = req.GET.get('next') return HttpResponseRedirect(render_to) else: form = QuestionForm() return render(req,'q.html', {'form':form}) else: render_to = req.GET.get('next') return HttpResponseRedirect(render_to)
def add_poll(request): if request.user.is_authenticated(): if request.method == "POST": form = QuestionForm(request.POST) if form.is_valid(): form.save(commit=True) return index(request) else: print form.errors else: form = QuestionForm return render(request, 'polls/add_poll.html', {'form':form}) else: return HttpResponseRedirect('/polls/')
def registerQ(request): #로그인 여부를 체크하는 코드 if 'loginstate' in request.session: if request.method == "GET": #해당 뷰를 GET 방식으로 요청시(페이지 접근) #QuestionForm 객체를 생성 - HTML에서 form 태그 컨텐츠안에 넣으면 됨 obj = QuestionForm() return render(request, 'polls/registerQ.html', {'form': obj}) else: #해당 뷰를 POST방식으로 요청시 #request.POST.get("") form내에 있는 특정 변수값을 가져올때 #request.POST form내에 있는 모든 값을 사용 #POST방식으로 온 데이터를 QuestionForm에 삽입 obj = QuestionForm(request.POST, request.FILES) #obj.is_valid() : 사용자가 <form>에 있는 양식을 잘 작성했는지 확인(True,False) if obj.is_valid(): #값이 유효한가? #obj.save() : QuestionForm을 Question 객체로 변환 후,데이터베이스에 저장 #obj.save(commit = False) : QuestionForm을 Question객체로 변환 user = get_object_or_404(CustomUser, pk=request.session['username']) question = obj.save(commit=False) question.pub_date = datetime.now() question.customuser = user #CustomUser 객체를 매칭 question.save() #데이터베이스에 반영 return HttpResponseRedirect(reverse('polls:index')) else: #값이 유효하지 않을때 처리 return render(request, 'polls/registerQ.html', { 'form': obj, 'error_message': "비정상적인 값입니다." }) else: #세션에 loginstate값이 없는 경우(비로그인 상태) return render(request, 'polls/error.html', {'error': '로그인 후 접근할 수 있는 페이지입니다.'})
def post(self, request): form = QuestionForm(request.POST) if form.is_valid(): question = form.save(commit=false) text = form.cleaned_data['question'] form = QuestionForm() #return redirect('polls:polls') args = {'form': form, 'text': text} return render(request, self.template_name, args)
def add(request): # Implementamos el flujo GET if request.method == 'GET': # Creamos el formulario para preguntas form = QuestionForm() # Renderizamos el add.html con el formulario limpio return render(request, 'polls/add.html', {'form': form}) # Implementamos el flujo POST elif request.method == 'POST': # Cargamos los datos posteados en un formulario form = QuestionForm(request.POST) # Guardamos los datos form.save() # Renderizamos el add.html con el formulario limpio y un mensaje de éxito return render(request, 'polls/add.html', { 'form': QuestionForm(), 'message': 'Datos guardados correctamente' })
def pollqn(request): if request.method == "POST": print("POST4") form = QuestionForm(request.POST) #print(form.cleaned_data['question_text']) print("POST3") if form.is_valid(): print("POST1") try: form.save() print("POST2") return redirect('/polls/viewqn') except: pass else: print("GET") form = QuestionForm() return render(request,'indexqn.html',{'form':form})
def create(request): if request.method == 'POST': # form 에서 요청이 POST로 오면 form = QuestionForm(request.POST) if form.is_valid(): q = form.save(commit=False) q.author = request.user q.pub_date = timezone.now() q.save() return redirect('polls:index') else: # form 에서 요청이 GET으로 오면 아래 form 형식을 출력하여 사용자가 입력하게끔 form = QuestionForm() return render(request, 'polls/create.html', { 'form': form, })
def edit_questions(request, poll_name): """ Editing form and handler for adding new questions. """ poll = Poll.objects.get(url=poll_name) ChoiceForms = inlineformset_factory(Question, Choice, fields=('value',)) if request.method == 'POST': form = QuestionForm(request.POST) if form.is_valid(): q = form.save(commit=False) cf = ChoiceForms(request.POST, instance=q) if cf.is_valid(): q.save() cf.save() QLink.objects.create( poll=poll, question=q ) return redirect('poll-edit-questions', poll.url) else: cf = ChoiceForms() else: form = QuestionForm() cf = ChoiceForms() return render( request, 'polls/poll/questions.html', { 'poll': poll, 'questions': poll.questions_in_order().all(), 'form': form, 'choice_forms': cf, 'old_questions': Question.objects.all() } )
def registerQ(request): if request.session['loginstate'] == True: if request.method =="GET": obj = QuestionForm() return render(request, 'polls/registerQ.html', {'form' : obj }) else: obj = QuestionForm(request.POST,request.FILES) if obj.is_valid(): user = get_object_or_404(CustomUser, pk = request.session['username']) question = obj.save(commit=False) question.pub_date = datetime.now() question.customuser = user question.save() return HttpResponseRedirect(reverse('polls:index')) else: return render(request, 'polls/registerQ.html', {'form' : obj, 'error_message' : "비정상적인 값입니다."}) else: return render(request,'polls/error.html', {'error': '로그인 후 접근할 수 있는 페이지입니다.'})
def edit_questions(request, poll_name): """ Editing form and handler for adding new questions. """ poll = Poll.objects.get(url=poll_name) ChoiceForms = inlineformset_factory(Question, Choice, fields=('value', )) if request.method == 'POST': form = QuestionForm(request.POST) if form.is_valid(): q = form.save(commit=False) cf = ChoiceForms(request.POST, instance=q) if cf.is_valid(): q.save() cf.save() QLink.objects.create(poll=poll, question=q) return redirect('poll-edit-questions', poll.url) else: cf = ChoiceForms() else: form = QuestionForm() cf = ChoiceForms() return render( request, 'polls/poll/questions.html', { 'poll': poll, 'questions': poll.questions_in_order().all(), 'form': form, 'choice_forms': cf, 'old_questions': Question.objects.all() })