djangoのadminページのhtmlキャッシュ削除について
djangoで開発を進めています。djangoでmodelの設定が、runserverで立ち上げたadminページに反映されないことで困っています。どなたか原因のわかる方がいれば、ご教授いただけると幸いです。
背景
- model.pyにモデルクラス
TestModel(models.Model)
を記載しました。そのモデルはsampleField = models.CharField(max_length='20')
のフィールドを含んでいます。 admin.pyにその
TestModel
をregister
しました。syncdb、makemigrations等を行い、そして以下のコマンドで開発サーバーを立ち上げました。python manage.py runserver
http://localhost:8000/admin
からログインしました。そのモデルでレコードを追加していたところ、sampleFieldにブランクを設定したいということになりました。- model.pyの対応する
sampleField = models.CharField(max_length='20')
をsampleField = models.CharField(max_length='20',blank=True,null=True)
に変更し、makemigrationsおよびsyncdbを実施しました。 再度adminページからレコードの追加を試みましたが、
sampleField
で以下のエラーが発生しました。This field is required.
model.pycが存在することが原因かと考え、削除しました。また、開発サーバーを念のため以下のコマンドで再起動しました。しかし、同様のエラーが発生しました。
python manage.py runserver
htmlのキャッシュが原因かと考え、ブラウザのキャッシュを削除しました。しかし、同様にエラーが発生しました。
djangoのdbキャッシュがあるのかと考え、以下のコマンドで削除しました。ですが、エラーが発生しました。
python manege.py shell;from django.core.cache import cache;cache.clear()
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で立ち上げたサーバの挙動がイマイチ理解できていないようです。
解決報告
下記の流れで、本件が発生しておりました。私のミスでした。色々ご迷惑をおかけしました。
- ターミナルAにて、bashを利用し、プロジェクトリポジトリ
/home/myname/myDjangoProject
にてpython manage.py runserver
を実行。 - 別にターミナルBを起動し、
/home/myname/myDjangoProject
で、model.py等を編集。 - サーバー上のリポジトリにpushする際に、コンフリクトが発生したので、ターミナルBにて
/home/myname/myDjangoProject
を/home/myname/_myDjangoProject
にリネーム。サーバー上のリポジトリをローカルに再度、cloneし、作業を再開。 - ここまでが背景の1から3に隠れていました。その後、背景の4以降を実施。
ターミナルAが参照しているディレクトリは、実は、/home/myname/_myDjangoProject
であったが、pwdの実行結果は/home/myname/myDjangoProject
となるため、ワーキングディレクトリがズレていることに気付きませんでした。そのため、今回のように設定が反映されないと考えていました。
参照先のDBがズレていないかとご指摘いただいたことで、参照していたsqlite3を確認しようと、ターミナルAでrunserverを停止し、open .
を実行したところ、今回の問題に気付きました。
ご迷惑おかけしました。そして、色々ありがとうございました。
(タイトルは本質からズレていますが、どのように修正したら良いのでしょう。)