Django-ModelForm

mseo39·2021년 1월 22일
0

django

목록 보기
5/7
post-thumbnail

📚likelion 8th의 django 강의 필기

📑Django

ModelForm이란?

  • model에 대응하는 html폼을 만들어줌
  • 데이터를 생성하거나 업데이트가 간편
  • 폼을 다루는 법을 배워야한다

ModelForm 사용하기

1. model 생성하기

👉models.py에서 작성
✍
class Jasoseol(models.Model): #첫글자는 대문자 models의 Model을 상속받음
    title = models.CharField(max_length=50)
    content = models.TextField()
    updated_at = models.DateTimeField(auto_now=True)

2. modelform 만들기

👉앱폴더에 froms.py를 생성
👉다음 코드를 froms.py에 작성
✍
from django import forms
from .models import Jasoseol #위에서 생성한 모델을 가져옴

class JssForm(forms.ModelForm):

    class Meta:
        model = Jasoseol
        fields = ('title', 'content',) #입력 받을 필드를 작성

3. modelform을 사용하기 위한 함수 작성

👉views.py에 작성
✍
from .forms import JssForm #만든 modelform을 가져옴

def create(request):
    #form에 입력 받았을 때
    if request.method == "POST":
        filled_form = JssForm(request.POST)
        if filled_form.is_valid():
            filled_form.save()
            return redirect('index')
    #form을 html에 보내 사용자가 입력하게 만들 때
    jss_form=JssForm()
    return render(request, 'create.html', {'jss_form':jss_form})

4. html에서 modelform을 사용하기

👉html파일에 작성
✍
 <form method="POST" asction="">
     {% csrf_token %}
     {{jss_form.as_p}}
     <input type="submit" value="확인">
 </form>
 👉{{jss_form}} 이것만 작성해도 html에 form뜸
 👉.as_p는 폼의 각 필드를 p 태그 안에서 레이블과 텍스트로 배치하여 정리해줌

0개의 댓글