Python Django エラー解決方法 CreateView is missing a QuerySet モデルとフォームが連携出来ないときの解決方法

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')

コメント

タイトルとURLをコピーしました