djangoで開発を進めています。djangoでmodelの設定が、runserverで立ち上げたadminページに反映されないことで困っています。どなたか原因のわかる方がいれば、ご教授いただけると幸いです。

背景

  1. model.pyにモデルクラスTestModel(models.Model)を記載しました。そのモデルはsampleField = models.CharField(max_length='20')のフィールドを含んでいます。
  2. admin.pyにそのTestModelregisterしました。syncdb、makemigrations等を行い、そして以下のコマンドで開発サーバーを立ち上げました。

    python manage.py runserver
    
  3. http://localhost:8000/adminからログインしました。そのモデルでレコードを追加していたところ、sampleFieldにブランクを設定したいということになりました。

  4. model.pyの対応するsampleField = models.CharField(max_length='20')sampleField = models.CharField(max_length='20',blank=True,null=True)に変更し、makemigrationsおよびsyncdbを実施しました。
  5. 再度adminページからレコードの追加を試みましたが、sampleFieldで以下のエラーが発生しました。

    This field is required.

  6. model.pycが存在することが原因かと考え、削除しました。また、開発サーバーを念のため以下のコマンドで再起動しました。しかし、同様のエラーが発生しました。

    python manage.py runserver
    
  7. htmlのキャッシュが原因かと考え、ブラウザのキャッシュを削除しました。しかし、同様にエラーが発生しました。

  8. djangoのdbキャッシュがあるのかと考え、以下のコマンドで削除しました。ですが、エラーが発生しました。

    python manege.py shell;from django.core.cache import cache;cache.clear()
    
  9. htmlが反映されていないようにたので、TestModel(models.Model)sampleField2 = models.CharField(max_length='20',blank=True,null=True)を追加し、makemigrationsおよびsyncdbを実施し、開発サーバー再起動、adminページへのアクセスを実施しました。adminページでは、sampleField2の入力項目が表示されていませんでした。

どこかにhtmlのキャッシュがたまっている?かと思っていますが、どこから削除すれ良いかわかりませんでした。どなたか上記問題の解決策がわかれば、ご教授ください。

よろしくお願いします。

追記

ローカル環境で、設定を実施していた際は、htmlが反映されなかったのですが、Apacheの立ち上がっているWEBサーバーにpushして、そこで確認してみると、問題なく起動されました。
runserverで立ち上げたサーバの挙動がイマイチ理解できていないようです。

解決報告

下記の流れで、本件が発生しておりました。私のミスでした。色々ご迷惑をおかけしました。

  1. ターミナルAにて、bashを利用し、プロジェクトリポジトリ/home/myname/myDjangoProjectにてpython manage.py runserverを実行。
  2. 別にターミナルBを起動し、/home/myname/myDjangoProjectで、model.py等を編集。
  3. サーバー上のリポジトリにpushする際に、コンフリクトが発生したので、ターミナルBにて/home/myname/myDjangoProject/home/myname/_myDjangoProjectにリネーム。サーバー上のリポジトリをローカルに再度、cloneし、作業を再開。
  4. ここまでが背景の1から3に隠れていました。その後、背景の4以降を実施。

ターミナルAが参照しているディレクトリは、実は、/home/myname/_myDjangoProjectであったが、pwdの実行結果は/home/myname/myDjangoProjectとなるため、ワーキングディレクトリがズレていることに気付きませんでした。そのため、今回のように設定が反映されないと考えていました。

参照先のDBがズレていないかとご指摘いただいたことで、参照していたsqlite3を確認しようと、ターミナルAでrunserverを停止し、open .を実行したところ、今回の問題に気付きました。

ご迷惑おかけしました。そして、色々ありがとうございました。
(タイトルは本質からズレていますが、どのように修正したら良いのでしょう。)