Todo 앱 Create 만들기.
이제 상세보기 페이지도 생겼으니, crate 기능을 만들어보자!
작업 순서는 view -> forms.py -> url -> template 이다.
#views.py
class TodoCreateView(CreateView):
model = TodoList
form_class = TodoCreateForm
template_name = 'todo/todo_create.html'
success_url = reverse_lazy('todo:index')
역시나 간편하게 장고의 제네릭뷰의 createview를 이용할것이다.
createview에서 fields = ['name',...] 등으로 설정하면 따로 forms.py를 만들지 않아도 되지만, forms.py를 이용해보기로 했다.
#forms.py
from django import forms
from .models import TodoList
class TodoCreateForm(forms.ModelForm):
class Meta:
model = TodoList
fields = ('name', 'description', 'date_deadline', 'image', 'file')
forms.py도 장고의 modelform을 이용해보았다.
modelform을 이용하면, model에 맞춰서 간단하게 form을 제공해준다.
#urls.py
path('create/', TodoCreateView.as_view(), name='create'),
url을 등록해주고,
#todo_create.html
<div class="text-center">
<form method="post", action="", enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="작성">
</form>
</div>
위와같이 작성해준다, 이때, form 태그안의 enctye를 설정해주지 않으면 정상적으로 작동하는것 같지만 이미지와 파일이 업로드되지 않으니 주의하자!!
나는 이거 몰라서 한시간을 찾아해맸음..
그리고, listview,indexview 등의 작성 버튼에 {% url 'todo:create' %} 를 연결해서 버튼을 활성화시켜준다.
버튼을 눌러보면,
허접하지만 폼이 등장하고, 입력하면 작동한다.
Author And Source
이 문제에 관하여(Todo 앱 Create 만들기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@polaris0027/Todo-앱-Create-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)