250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- eager
- 즉시로딩
- 이진탐색
- fetch
- execute
- JPQL
- shared lock
- PS
- 다대일
- 다대다
- CHECK OPTION
- dfs
- 스토어드 프로시저
- 낙관적락
- 동적sql
- BOJ
- 힙
- FetchType
- 스프링 폼
- 비관적락
- SQL프로그래밍
- exclusive lock
- querydsl
- 유니크제약조건
- 연결리스트
- 일대다
- 연관관계
- 지연로딩
- 데코레이터
- 백트래킹
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
modelForm 본문
728x90
path 지정
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home, name='home'),
path('new/', views.new, name='new'),
path('create/', views.create, name='create'),
path('formcreate/', views.formcreate, name='formcreate'),
path('modelformcreate/', views.modelformcreaete, name='modelformcreate'),
]
forms.py - 비교를 위해 BlogForm도 같이 업로드한다
from django import forms
from .models import Blog
class BlogForm(forms.Form):
# 내가 입력받고자 하는 값들
title = forms.CharField()
body = forms.CharField(widget=forms.Textarea)
class BlogModelForm(forms.ModelForm):
class Meta:
model = Blog
# fields = '__all__' # Model의 Blog 모델을 전부 입력받을 것이다
fields = ['title', 'body'] # 특정 필드만 입력받고 싶을 때
views.py - 비교를 위해 formcreate랑 같이 업로드한다
def formcreate(request):
if request.method == 'GET':
form = BlogForm()
elif request.method == 'POST':
form = BlogForm(request.POST)
if form.is_valid(): # 폼 데이터를 자동으로 유효성 검사를 해줌
post = Blog()
post.title = form.cleaned_data['title']
post.body = form.cleaned_data['body']
post.save()
return redirect('home')
return render(request, 'form_create.html', {'form': form})
def modelformcreate(request):
if request.method == 'GET':
form = BlogModelForm()
elif request.method == 'POST':
form = BlogModelForm(request.POST)
if form.is_valid(): # 폼 데이터를 자동으로 유효성 검사를 해줌
form.save()
return redirect('home')
return render(request, 'form_create.html', {'form': form})
form 비주얼적 요소 설정
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = '__all__'
def __init__(self, *args, **kwargs):
super(PostForm, self).__init__(*args, **kwargs)
self.fields['title'].widget.attrs = {
'class': 'form-control',
'placeholder': "글 제목을 입력해주세요",
'rows': 20
}
self.fields['body'].widget.attrs = {
'class': 'form-control',
'placeholder': "글 제목을 입력해주세요",
'rows': 20,
'cols' : 100
}
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['comment']
def __init__(self, *args, **kwargs):
super(CommentForm, self).__init__(*args, **kwargs)
self.fields['comment'].widget.attrs = {
'class': 'form-control',
'placeholder': "댓글을 입력해주세요",
'rows': 10
}
'Django' 카테고리의 다른 글
게시글 detail 페이지 구현 (0) | 2022.06.08 |
---|---|
DB에 담긴 데이터들을 html에 띄워보자 (0) | 2022.06.07 |
django form 이용하기 (0) | 2022.06.07 |
static (0) | 2022.06.06 |
앱 추가하고 url 매핑하기 (0) | 2022.06.06 |