djangoの使い方

本サイトはdjangoで作成しています。
djangoの使用方法についてまとめています。

5393 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 14.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626