반응형

#Form -> model 형식에 맞는 입력 공간 (html form 의 한계성) / Django 기능 활용 (form 만들기 = model 만들기와 유사)

-form.py: html에서 보여지는 form / -models.py  : DB


1.blog app / forms.py(생성) 

 # Blog class를 기반으로 만들 것이기 때문에 blog 안에 form.py 생성/ models.py있으니까
from django import forms
from .models import Blog 
 
# 모델기반이 아니면 forms.Form
class BlogPost(forms.ModelForm):
    class Meta: #어떤 모델을 기반으로 한 입력공간, 그 모델 중에 어떤 항목 입력?
        model = Blog
        fields = ['title''body'
cs 



2.blog app/urls.py

1
 path('newblog/', views.blogpost, name='newblog'),
cs


3.blog app/views.py

from .forms import BlogPost
 
def blogpost(request):
    # 1. 입력된 내용 처리 : POST
    if request.method == 'POST':
        form = BlogPost(request.POST)
        if form.is_valid(): 
    #적절한 값이 잘 입력되었는지 확인 // 입력값이 형식에 맞게 입력되었으면 true ,문제가 있다면 false 반환.
            post = form.save(commit=False) #일단 저장하지 말고 form객체 말고 model 객체 접근
            post.pub_date = timezone.now() 
            post.save()
            return redirect('home')
    # 2. 빈 페이지 띄워주는 기능 : GET
    #new.html에 빈 페이지 띄우기
    else:
        form = BlogPost()
        return render(request, 'new.html', {'form': form})
cs


 



4.blogapp/templates/new.html



반응형

'Web > Django' 카테고리의 다른 글

[Django_심화]2 - Rest, Serializer  (0) 2019.11.03
[Django_심화]1 - 준비운동  (0) 2019.11.02
[5.5주차]Faker  (0) 2019.03.05
[5주차]2.Pagination  (0) 2019.03.05
[5주차]1.로그인,회원가입  (0) 2019.03.05

+ Recent posts