Beispiel #1
0
def qregister(request):
        #사용자의 요청방식을 구분
        #GET방식 -> HTML을 전달
        if request.method == "GET":
            #Form클래스 이용방법
            #객체 생성 후 as_p, as_table, as_ul 함수를
            #호출하면 <input>태그를 자동생성해줌
            form = QuestionForm()
            print(form.as_p())
            #입력양식을 행,열단위로 HTML코드 생성
            html = form.as_table()
            return render(request,'vote/qform.html',
                                        {'form' : html})
        # POST방식 -> 사용자 입력기반의 Question객체 생성
        elif request.method == "POST":
            # request.POST : 사용자 입력 데이터 저장 변수
            # 사용자가 보낸 데이터를 기반으로 QuestionForm
            # 객체 생성
            form = QuestionForm(request.POST)
            # 사용자가 보낸 데이터가 유효한 값인지 확인
            if form.is_valid():
                """
                폼객체.is_valid() : 사용자 입력이 유효한경우 True반환,
                추가적으로 cleaned_data 변수를 사용해 데이터를 추출할수있음
                만약에 유효한값이 아닌경우 False반환,
                사용자의 입력을 다시 받을 수 있도록 HTML코드를 전달    
                
                모델폼객체는 연동된 모델객체를 생성할 수 있음
                모델폼객체.save() : 반환값 생성된 모델객체.
                내부적으로 데이터베이스에 새로운 객체가 저장됨
                현재 QuestionForm객체로 title변수만 값이 작성되있어
                데이터베이스에 바로 저장을 할 수 없음(pub_date변수값없음)
                
                모델폼객체.save(commit=False) : 데이터베이스에 저장하지않고,
                모델객체만 반환함
                """
                # form 객체와 연동된 모델객체를 q변수에 저장
                # q : Question객체를 저장한 상태
                q = form.save(commit=False)
                print('생성할 객체의 제목', q.title)
                print('id 변수값 : ' , q.id)
                # 새로 생성할 객체에 서버컴퓨터의 현재날짜를 저장
                q.pub_date = datetime.now()
                # 객체를 데이터베이스에 저장
                q.save()
                print('객체 생성 후 id 변수값 : ', q, id)
                # reverse 함수 :  파이썬 코드내에서 별칭기반으로
                # URL을 찾을 수 있는 함수
                # reverse(별칭 문자열, args=(매개변수값,))
                # index 뷰함수 호출
                return HttpResponseRedirect(reverse('vate:index'))
            else:
                    pass
Beispiel #2
0
def qregister(request):
    '''
    사용자의 요청방식을 구분
    get 방식 -> html을 전달
    post 방식 ->사용자 입력기반의 Question객체 생성
    '''
    if request.method == 'GET':
        form = QuestionForm()
        print(form.as_p())
        #입력양식을 행, 열단위로 html코드 생성
        html = form.as_table()
        return render(request,'vote/qform.html', {'form': html})
    
  #  Form클래스 이용방법
 #   객체 생성 후 as_p, as_table, as_ul 함수를 호출하면 <input>태그를 자동생성해줌.
    
    elif request.method == 'POST':
    #    request.POST: 사용자 입력 데이터 저장변수-
    #    사용자가 보낸 데이터를 기반으로 QuestionFrom
    # 객체 생성
       form= QuestionForm(request.POST)
       #사용자가 보낸 데이터가 유효한 값인지 확인
       if form.is_valid():
           '''
           폼객체.is_valid(): 사용자 입력이 유효할 시 True반환,
           추가적으로 cleaned_data 변수를 사용해 데이터를 추출할 수 있음.
           유효값이 아닐 경우 False반환, 사용자의 입력을 다시 받을 수 있도록 html코드 전달
          모델폼 객체는 연동된 모델 객체를 생성할 수 있음.
          모델폼객체.save(): 반환앖 생성된 모델객체. 내부적으로 데이터 베이스에 새호운 객체가 저장됨.
          현재 QuestionForm 객체로 title변수만 값이 작성되어있어 데이터 베이스에 바로 저장 불가(pub_date 변수 값 없음)
                모델폼객체.save(commit=False):데이터 베이스에 저장 안 하고 모델 객체만 반환함.
           
           '''
           #form 객체와 연동된 모델 객체를 q변수에 저장
           #q : Question 객체를 저장한 상태
           q= form.save(commit=False)
           print('생성할 객체의 제목', q.title)
           print('id 변수값:',q.id)
           #새로 생성할 객체에 서버컴퓨터의 현재 날짜를 저장
           q.pub_date = datetime.now()
           #객체를 데이터베이스에 저장
           q.save()
           print('객체 생성 후 id 변수 값:', q.id)
           #reverse 함수: 파이썬 코드 내에서 별칭 기반으로 url을 찾을 수 있는 함수
           #reverse(병칭 문자열, args=(매개변수값,))
           #index 뷰 함수 호출
           return HttpResponseRedirect( reverse('vote:index') )
       else:
           pass