【即解決】django.db.utils.OperationalError: no such column

Django

(最終更新月:2021年10月)

現在、Djangoフレームワークにて日報アプリ開発中です

モデルクラスのフィールドを追加し、マイグレーションを実行した際、

django.db.utils.OperationalError: no such column: nippo_nippomodel.date

とエラーが発生してしまいました

試行錯誤の末、解決策を見つけましたので、

  • 「django.db.utils.OperationalError」を解決する方法

として備忘録を兼ねて記事とします

初期費用ゼロ/月9,800円でWebデザインが学べる

デザインを習得するためには、客観的なフィードバックと改善が不可欠です。

以下の記事ではこんなWebデザインスクールをご紹介しています。

  • 初期費用ゼロで、月々9,800円のみ
  • オンラインで、教材が使い放題
  • コンテストや実務案件にチャレンジして報酬もGETできる

デザナルはトップデザイナーからレビューがもらえる、格安のWebデザインスクールです。

>>デザナルに興味がある方はこちらからどうぞ<<

詳細をまとめた記事もございますので、ぜひご覧ください。

解決策

こちらのエラーの原因は「views.py」にあります

当アプリで発生したエラーの原因は、views.pyで新たにインポートした「filterクラス」と、filterクラスについて記述しているNippoListView内のget_context_data内にありました

対象の箇所をすべてコメントアウトし、下記のとおりとなりました

# from .filters import NippoModelFilter    

class ...

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        # ctx["filter"] = NippoModelFilter(self.request.GET, queryset=self.get_queryset())
        return ctx

マイグレーションを行うといかがでしょうか?

詳しくはよくわかっておりませんが、「views.py」がマイグレーション前の新たに追加したフィールドを認識してしまうために起こっているのだとに考えられます

外部ファイルからのインポートで、新たに追加したフィールドやモデルクラスに関係するものを全てコメントアウトする必要があります

そのうえでマイグレーションを行うと、「マイグレーション前の存在しないフィールドを探す」というエラーの原因となっている行為を防ぐことができました

さいごに

当記事で解説している「OperationalError」は、日報アプリの開発中に発生したエラーです

「解決策を見てもいまいちピンとこない」や、「自分もアプリ開発をしてみたい!」という方はこちらからぜひアプリの開発からWebで公開するまで、を学んでいきましょう!

初期費用ゼロ/月9,800円でWebデザインが学べる

デザインを習得するためには、客観的なフィードバックと改善が不可欠です。

以下の記事ではこんなWebデザインスクールをご紹介しています。

  • 初期費用ゼロで、月々9,800円のみ
  • オンラインで、教材が使い放題
  • コンテストや実務案件にチャレンジして報酬もGETできる

デザナルはトップデザイナーからレビューがもらえる、格安のWebデザインスクールです。

>>デザナルに興味がある方はこちらからどうぞ<<

詳細をまとめた記事もございますので、ぜひご覧ください。

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました