Exemplo n.º 1
0
def ask(request):
    user = get_authenticate_user(request)
    context = {'user': user}
    form = QuestionForm()
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            question = Question.objects.create(
            author=user,
            title=form.cleaned_data.get('title'),
            content=form.cleaned_data.get('content'),
            created=datetime.now()
            )
            tags = form.cleaned_data.get('tags').split(',')
            for tag in tags:
                try:
                    if ' ' in tag:
                        tag = tag.replace(' ', '_')
                    t = Tag.objects.get(title=tag)
                except Tag.DoesNotExist:
                    t = Tag.objects.create(title=tag)
                    t.save()
                question.tags.add(t)
            question.save()
            return HttpResponseRedirect('/question/' + str(question.id))
    context.update({'form': form})
    return render(request, 'ask.html', context)
Exemplo n.º 2
0
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': '로그인 후 접근할 수 있는 페이지입니다.'})
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
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,
    })
Exemplo n.º 5
0
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})
Exemplo n.º 6
0
def list(request):
    questions = Question.objects.all()

    context = {
        'questions': questions,
        'form': QuestionForm(),
    }
    return render(request, 'polls/list.html', context)
Exemplo n.º 7
0
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'
        })
Exemplo n.º 8
0
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})
Exemplo n.º 9
0
 def get(self, request, *args, **kwargs):
     """
     Handles GET requests. Instantiates blank versions of the form
     and its inline formsets.
     """
     self.object = None
     form = QuestionForm()
     choice_form = ChoiceInlineFormSet()
     return self.render_to_response(
         self.get_context_data(form=form, choice_form=choice_form))
Exemplo n.º 10
0
 def post(self, request):
     form = QuestionForm(request.POST)
     if form.is_valid():
         question_text = form.cleaned_data["question_text"]
         pub_date = form.cleaned_data["pub_date"]
         Question.objects.create(question_text=question_text,
                                 pub_date=pub_date)
         return HttpResponseRedirect(reverse("polls:my-questions"))
     return render(request,
                   template_name="my_name.html",
                   context={"form": form})
Exemplo n.º 11
0
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')
Exemplo n.º 12
0
def get_question(request):
    form = QuestionForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            question_text = form.cleaned_data["question_text"]
            pub_date = form.cleaned_data["pub_date"]
            Question.objects.create(question_text=question_text,
                                    pub_date=pub_date)
            return HttpResponseRedirect(reverse("polls:question_form"))
    return render(request,
                  template_name="my_name.html",
                  context={"form": form})
Exemplo n.º 13
0
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': '로그인 후 접근할 수 있는 페이지입니다.'})
Exemplo n.º 14
0
 def post(self, request, *args, **kwargs):
     """
     Handles POST requests. Instantiates a form instance and its inline
     formsets with the passed POST inputs, then checks for
     validity.
     """
     self.object = None
     form = QuestionForm(self.request.POST)
     choice_form = ChoiceInlineFormSet(self.request.POST)
     if (form.is_valid() and choice_form.is_valid()):
         return self.form_valid(form, choice_form)
     else:
         return self.form_invalid(form, choice_form)
Exemplo n.º 15
0
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()
        })
Exemplo n.º 16
0
def get_question(request):
    print request.user
    form = QuestionForm(instance=Question.objects.all().last())
    return render(request, 'question.html', {'form': form})
Exemplo n.º 17
0
def create_question(request):
    question = Question.objects.get_or_create(question_text='hello')[0]
    form = QuestionForm(instance=question)
    return render(request, 'question.html', {'form': form})
Exemplo n.º 18
0
def get_latest_question(request):
    form = QuestionForm(instance=Question.objects.all().latest("pub_date"))
    return render(request, 'question.html', {'form': form})
Exemplo n.º 19
0
 def get(self, request):  #read - pokazuje o co prosimy
     form = QuestionForm()
     return render(request,
                   template_name="my_name.html",
                   context={"form": form})
Exemplo n.º 20
0
 def get(self, request):
     form = QuestionForm()
     return render(request, self.template_name, {'form': form})