djangoのadminページのhtmlキャッシュ削除について


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

# 背景

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

    
[/code]

  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が存在することが原因かと考え、削除しました。また、開発サーバーを念のため以下のコマンドで再起動しました。しかし、同様のエラーが発生しました。
[code]     python manage.py runserver

    
[/code]

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

  8. djangoのdbキャッシュがあるのかと考え、以下のコマンドで削除しました。ですが、エラーが発生しました。
[code]     python manege.py shell;from django.core.cache import
cache;cache.clear()

    
[/code]

  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. ここまでが背景の１から３に隠れていました。その後、背景の４以降を実施。

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

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

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




問題の状況が見えないので、示唆レベルの回答です。

  * `python manage.py runserver` で起動 & デフォルトのキャッシュ設定の場合、キャッシュはとくに残りません。
  * `python manage.py runserver` で起動する場合はファイルに変更があればサーバーは自動で再起動されます。
  * Django 1.7 でしたら `syncdb` で問題ありません。内部的に `migrate` が実行されます。該当コード <https://github.com/django/django/blob/1.7.5/django/core/management/commands/syncdb.py#L27>

以下の確認が必要そうです。

  * migrationファイルが正しく作成、適応されているか
  * 確認中のアプリサーバーは作成、適応したDBを正しく参照しているか
  * 確認中のアプリサーバーは正しく再起動しているか  
  

    * とりあえずはローカル環境で、`runserver` と `sqlite` のデータベースで動作確認するのが良さそうです。
  

また、エラーが発生したのであればエラー内容を書いていただけると回答の役に立ちそうです。

(信用度が足りなくて回答へのコメントとかができない!!)




問題の状況が見えないので、示唆レベルの回答です。

  * `python manage.py runserver` で起動 & デフォルトのキャッシュ設定の場合、キャッシュはとくに残りません。
  * `python manage.py runserver` で起動する場合はファイルに変更があればサーバーは自動で再起動されます。
  * Django 1.7 でしたら `syncdb` で問題ありません。内部的に `migrate` が実行されます。該当コード <https://github.com/django/django/blob/1.7.5/django/core/management/commands/syncdb.py#L27>

以下の確認が必要そうです。

  * migrationファイルが正しく作成、適応されているか
  * 確認中のアプリサーバーは作成、適応したDBを正しく参照しているか
  * 確認中のアプリサーバーは正しく再起動しているか  
  

    * とりあえずはローカル環境で、`runserver` と `sqlite` のデータベースで動作確認するのが良さそうです。
  

また、エラーが発生したのであればエラー内容を書いていただけると回答の役に立ちそうです。

(信用度が足りなくて回答へのコメントとかができない!!)

