Hatena::Grouptech

id:rx7(@namikawa)の技術メモ このページをアンテナに追加 RSSフィード

過去記事一覧 | Main Blog (元RX-7乗りの適当な日々) | SBM (id:rx7のBookmark)

2013/10/10

CSRF verification failed. / CSRF cookie not set.

| CSRF verification failed. / CSRF cookie not set. - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - CSRF verification failed. / CSRF cookie not set. - id:rx7(@namikawa)の技術メモ CSRF verification failed. / CSRF cookie not set. - id:rx7(@namikawa)の技術メモ のブックマークコメント


DjangoなサイトにcurlでPOSTしたときに遭遇。

テスト用なので、一旦setting.pyの下記設定をコメントアウトした。(無効にした。)

MIDDLEWARE_CLASSES = (

・・・・・省略・・・・・

    #'django.middleware.csrf.CsrfViewMiddleware',

・・・・・省略・・・・・

)

ご利用は計画的に・・・。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20131010

2010/09/15

Model定義の変更時にDBへ簡単に反映させるDjango Evolution

| Model定義の変更時にDBへ簡単に反映させるDjango Evolution - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - Model定義の変更時にDBへ簡単に反映させるDjango Evolution - id:rx7(@namikawa)の技術メモ Model定義の変更時にDBへ簡単に反映させるDjango Evolution - id:rx7(@namikawa)の技術メモ のブックマークコメント

Djangoで、Model(モデル)の定義を変更した時に、DB定義も簡単に変更・反映(マイグレーション)してほしいところだが、Djangoには標準でそういう機構がない、と。

そこで、それを実現する「django-evolution」を使ってみた。

インストール

Ubuntuでやってみた。

$ sudo apt-get install python-django-evolution

設定とか

settings.pyを編集し、"INSTALLED_APPS"に以下のような感じで追記。

INSTALLED_APPS = (
    ・・・省略・・・
    'django_evolution',
)

次に、本題のmodels.pyを編集し、定義変更したいカラムを弄ります。

試しに、"max_length"の値を変更してみた。以下、実行例です。

DB定義を変更するためのDDL(DML)を確認

$ ./manage.py evolve --hint --sql
-- Evolve application server
UPDATE `servers` SET `memo`=LEFT(`memo`,2048);
ALTER TABLE `servers` MODIFY COLUMN `memo` varchar(2048);

実際に、DB定義を変更・反映する

一応↑でどんなDDL(DML)が発行されるか確認の上、実行しましょう。

途中で、実行してよいかの確認があります。

$ ./manage.py evolve --hint --execute

You have requested a database evolution. This will alter tables
and data currently in the 'srvmgr' database, and may result in
IRREVERSABLE DATA LOSS. Evolutions should be *thoroughly* reviewed
prior to execution.

Are you sure you want to execute the evolutions?

Type 'yes' to continue, or 'no' to cancel: yes
Evolution successful.

実際に変更を確認し、DBマイグレーションdone.

参考

トラックバック - http://tech.g.hatena.ne.jp/rx7/20100915