Python Django入門 (4)をやっていた時のエラーです。
python manage.py runserverでエラーが出たのですが↓
(env1) hogehoge@LAPTOP-hoge:~/env1/mybook$ python manage.py runserver Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call last): File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/hoge/env1/mybook/cms/urls.py", line 2, in <module> from cms import views File "/home/hoge/env1/mybook/cms/views.py", line 5, in <module> from cms.forms import BookForm File "/home/hoge/env1/mybook/cms/forms.py", line 5, in <module> class BookForm(ModelForm): File "/home/hoge/env1/lib/python3.6/site-packages/django/forms/models.py", line 267, in __new__ raise FieldError(message) django.core.exceptions.FieldError: Unknown field(s) (publiidher) specified for Book
その時のforms.pyが↓です。
forms
1from django.forms import ModelForm 2from cms.models import Book 3 4 5class BookForm(ModelForm): 6 """書籍のフォーム""" 7 class Meta: 8 model = Book 9 fields =('name', 'publiidher', 'page',)
そのあと、forms.pyを↓のようにすると(django入門4からコピペしただけ)、なぜかエラーが出なくなり解決してしまいました。
forms
1from django.forms import ModelForm 2from cms.models import Book 3 4 5class BookForm(ModelForm): 6 """書籍のフォーム""" 7 class Meta: 8 model = Book 9 fields = ('name', 'publisher', 'page', )
ここからが質問の内容なのですが、
➀まず、django.core.exceptions.FieldErrorとはどのようなものなのでしょうか?私はFieldエラーとあるので、models.pyかforms.pyのフィールド(カラム)に異常があると予測したのですが、、、
また、エラー中にUnknown field(s) (publiidher) specified for Book
とありますが、publiidherなるフィールドは作った覚えがなく、検索してもそのような文字列はありませんでした(今回はBookクラスにpublisherというフィールドを作っていたので…)publiidherとは何でしょうか?
File "/home/hoge/env1/mybook/cms/forms.py", line 5, in <module> class BookForm(ModelForm): File "/home/hoge/env1/lib/python3.6/site-packages/django/forms/models.py", line 267, in __new__ raise FieldError(message) django.core.exceptions.FieldError: Unknown field(s) (publiidher) specified for Book
➁forms.pyを修正するとフィールドエラーが解消されたのは後部うエラーの為と予想してますが、なぜfields = ('name'...'page', )と最後にカンマを打ってその間にスペースを空けないとエラーになるのでしょうか?
以上二点よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/28 11:44