CreateView is missing a QuerySetというエラーが発生した際の解決方法を記述します。
この原因は、CreateViewに指定すべきQuerySetが見つからないという内容です。
CreateViewに設定するQuerySetは、モデルから取り出されたデータ群のことですので、モデルに関する設定でエラーが起こっていることは分かりました。
そして、CreateViewは、ModelFormを継承したフォーム(モデルを内包している。)を引数に取ることからフォームの引き渡しに問題があるものと考えました。
結論から申し上げますと、views.pyの下記の記述に誤りがありました。
誤りの例(views.py)
from django.views.generic import CreateView
from .models import Book
from .forms import BookForm
from django.urls import reverse, reverse_lazy
class BookRegist(CreateView):
template_name = 'app/book_regist.html'
from_class = BookForm # <= form_class(正) from_class(誤)
success_url = reverse_lazy('app:app/book_list')
コメント