本サイトはdjangoで作成しています。
djangoの使用方法についてまとめています。
5953 views
djangoでmodelクラスを変更したら急に以下のメッセージが出力された。
sqlite3.OperationalError: no such table: テーブル名
よくわからないが、forms.pyクラスでエラーになったテーブルを見ている処理があるとエラーになるっぽい。
対処としてはforms.pyクラスをいったんコメントアウトして空っぽのソースに変える。
以下のWorkClassTable.objects.all()が悪さをしているようだった。
[form.py]
class TimeCardForm(forms.Form):
# 初期値の設定はViewで行う
date = forms.DateField(widget=forms.HiddenInput)
# AdminTimeWidgetはイマイチ使えないので自作する
in_time = forms.TimeField(widget=AdminTimeWidget)
off_time = forms.TimeField(widget=AdminTimeWidget, required=False)
records = WorkClassTable.objects.all()←←←←←←←これがダメっぽい
choice_list = []
for record in records:
choice_list.append((record.id, record.name))
print((record.id, record.name))
work_class_id = forms.ChoiceField(label='勤務区分',
widget=forms.Select,
choices=choice_list,
required=True)
がっつりコメントアウトする。
"""
class TimeCardForm(forms.Form):
# 初期値の設定はViewで行う
date = forms.DateField(widget=forms.HiddenInput)
# AdminTimeWidgetはイマイチ使えないので自作する
in_time = forms.TimeField(widget=AdminTimeWidget)
off_time = forms.TimeField(widget=AdminTimeWidget, required=False)
records = WorkClassTable.objects.all()←←←←←←←これがダメっぽい
choice_list = []
for record in records:
choice_list.append((record.id, record.name))
print((record.id, record.name))
work_class_id = forms.ChoiceField(label='勤務区分',
widget=forms.Select,
choices=choice_list,
required=True)
"""
コメントアウトした後、DBを再作成する。
python manage.py makemigrations
python manage.py migrate
でOK。DBが作成できたらforms.pyを元に戻せばOK。
成り行きでdjango使ってるけど、flaskに乗り換えようかなぁ…謎な動きが多すぎてしんどい。
Page 11 of 16.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/