TodoアプリケーションCreateの作成


詳細ビューページが表示されましたので、シャーシ機能を作成しましょう.
操作順序はview->formsです.py->url->テンプレート.
#views.py

class TodoCreateView(CreateView):
    model = TodoList
    form_class = TodoCreateForm
    template_name = 'todo/todo_create.html'
    success_url = reverse_lazy('todo:index')
同様に張高のJENNERICVIEWのcreateviewも簡単に使えます.
createviewではfield=[「name」...]などに設定すると、フォームが別途設定されます.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を用いて,モデルに基づいて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を設定しないと正常に動作するようですが、画像とファイルはアップロードされていません.
これを知らなかったので1時間探しましたが...
次に、listview、indexviewなどの合成ボタンに{%url"to:create"%}を接続して、このボタンをアクティブにします.
ボタンを押すと、

ぼろぼろですがフォームが出てきて入力すると起動します.