Django

Windows, Apache, mod_python な環境で virtualenv 上の django を動かしてみた

環境構築に使ったリポジトリはここ https://bitbucket.org/toruuetani/virtualenv-modpython-test基本的にはここのまま。 http://mydjangoblog.com/2009/03/30/django-mod_python-and-virtualenv/ なぜ必要か Pythonはsite-packages以下にすべてのライブラリ…

django.db.transaction.commit_on_successデコレータの挙動はいまいち

ちょっとハマったのでメモしておく。commit_on_successデコレータは、その名の通り関数が成功したらコミットする。その関数の開始時にトランザクションを開始したりはしない。既存のコネクションがあればそれを利用する。したがって、commit_on_successデコ…

FormWizardを使いこなすための注意点

環境はPython2.5+Django1.0.3trunkをみてもdjango/contrib/formtools/wizard.pyの最終更新はr8679なので、Django1.1でも同じかな。 問題点 基本的な使い方はドキュメントにあるとおりだが、おそらく実際には使えない。問題は3つ。 FormWizardのextra_conte…

既存モデルを拡張する

Python2.5 + Django1.0.2で動作確認ずみ。Djangoで既存モデルを拡張したい場合、アプローチは2つある。 マルチテーブル継承を使う。 ForeignKeyで既存モデルを参照する。 マルチテーブル継承を使う 前者のマルチテーブル継承は、Django1.0からの機能でかな…

管理サイト外で日付選択ウィジェットを使う

管理サイトの日付選択ウィジェットを、管理サイト外で使いたいって要望は結構あるんじゃないかな。まずはurls.pyでjsi18nへのマッピングを追加しておく。これがないと、テンプレートでadmin/jsi18nを参照しないといけない。ただしadmin配下なので、スタッフ…

インライン編集するモデルの削除チェックボックスを非表示にする。

http://groups.google.com/group/django-users/browse_thread/thread/631fbc97b54f023e/16b6a85f1a4b5c94?lnk=raot&pli=1同じことを考える人はいるもんだ。とりあえず解決法としては、django.forms.models.BaseInlineFormSetのサブクラスをdjango.contrib.ad…

newformsでUserProfileをインライン編集する(1.0対応)

admin.site.unregisterで、既存のUserAdminからカスタムしたUserAdminのサブクラスに入れ替えてやればいい。当然ながら、UserAdminのサブクラスは普通のModelAdminと同じようにカスタマイズできる。 # -*- encoding: utf-8 -*- from django.contrib import a…

django.forms.ModelChoiceFieldをカスタマイズ

newformsは奥が深い。(1.0final前提。1.0rc1だとうまく動かない)たとえば、django.contrib.auth.models.Userを拡張するこんなモデルがあったとして。(user.get_profile() で UserProfile が取れるように設定しておく) class Department(models.Model): name…

Django 1.0beta1で作ったアプリを1.0rc1で動かすためにやったこと。

1.0rc1リリース記念。 saveメソッドのシグネチャ変更 http://docs.djangoproject.com/en/dev/ref/models/instances/#saving-objects beta1からrc1にアップデートしたら、軒並みテストに失敗したので焦った。force_insert と force_update が追加された。なの…

Django 0.97preで作ったアプリを 1.0beta1 で動かすためにやったこと

互換性の無い変更はここらへんを参考に。 http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges newforms-admin のマージ http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#Mergednewforms-adminintotrunk http://www.djangop…

Djangoアプリ用setupスクリプト

Djangoアプリを複数のWinマシンにインストールする必要に駆られて試行錯誤していたら、なんとなく形になったのでメモしておく。 20080410追記 国際化用ファイルの考慮が漏れていたので修正した。 setup.py # -*- encoding: utf-8 -*- from distutils.core im…

Django の管理サイトに、下書き機能を付けられないか考え中

Gmail の下書きとか、はてなのバックアップみたいなやつ。できたら便利だと思う。Webアプリケーションを操作していて最も恐ろしいのは、長文を書いている最中に何らかのアクシデントが起きて、入力した長文が消えることだろう。もう一度同じ文章を書く気力が…

django - javascript 間を JSON でやりとりする

ちょっと必要にかられたのでやってみたら、思ったより手間取ったのでメモしておく。 手間取った理由その1 0.97pre-SVN-6883 だと、django.utils.simplejson でモデルオブジェクトを JSON にできなくなってる。0.96のころはできたように思うんだけど。unicod…

django で論理削除を実現してみる

イベント系のデータならともかく、リソース系のデータの論理削除というのは結構需要が多そうな気がするけど、あまり触れられてないのはなんでだろうか?すでに Django Snippets とかにあるような気もするけど、なかなかいいアイデアが浮かんだのでメモしてお…

カートを実装してたらはまった

今まであまりセッションを意識せずに開発してたせいか、つまらないことですごくはまったのでメモしておく。django のセッションはシンプルで、 request.session を辞書ライクに使えばいい。 なので今回は、商品名の配列とか合計金額を格納してカートを実装す…

最近困ったこととか、気付いたことのメモ

久しぶりに django をいじってるせいか、ちょくちょく詰まる。それも、「あれ、前にもここで詰まったような・・・」っていうのが多い。解決できたかどうかも覚えてない。これはいささかDRY原則の侵犯であると言わざるを得ないので、思いつくままにメモしてお…

django で SSL を扱いたい(その3)

perezvon さんに教えてもらった方法を試してみましが、無理でした。 http でアクセスしようと、 https でアクセスしようと、 http しか取得できません。試したコードはこんな感じ。 # encoding: utf-8 from django.http import HttpResponse from django.sho…

django で SSL を扱いたい(その2)

ちょっと前進したのでメモ。 共有SSL限定かもしれないけど、request.META['REMOTE_ADDR'] の値で SSL かどうかは見分けられそう。具体的には、 http://djangoauthapi.reguzy.jp/ -> 59.157.245.2 https://ss1.coressl.jp/djangoauthapi.reguzy.jp/ -> 202.17…

django でSSLを扱いたい

とあるきっかけで知り合いのネットショップ構築を手伝うことになった。ただし、専業じゃなくて実店舗のおまけみたいで、あまりお金をかけるつもりはないみたい。じゃあ django で作ろうと短絡的に考えたんだけども、ネットショップについて全然知らない。と…

CORESERVER に Django アプリを複数設置する

CORESERVER はサブドメイン無制限らしいんだけど、Django アプリを設置するたびにサブドメインを増やしたくない。ということでいろいろ調べてたら、CATCH ALL機能と mod_rewrite を使えば動的サブドメインみたいなことができるらしい。実験用に設置するだけ…

こんにちわ、CORESERVER

そしてさようなら、さくらインターネット。CORESERVERを借りて Django を動かそうとするも、ScriptErrorがでて動かない。困ったなーと思ってたら、こんなタイムリーなPOSTが! CoreserverでDjangoを使う | スパムとか この通りにやったら、あっさり動きまし…

さくらの Django で本格的に困ってきた。

orzid:nmasatomo さんにコメントいただいたので、早速試してみたんだけど・・・無理ですた・・・ 以下やってみたこと。 mysql_old を使う mv mysql mysql_new mv mysql_old mysql症状変わらず。 DATABASE_OPTIONS と my.cnf を使う #settings.py DATABASE_EN…

Django を最新にupdateしたら困ったことになった。

実は前から困ってたんだけど・・・さくらにインストールした Django は、確か r59XX だったと思う(一応 0.97pre)。なんとなく動いてたんだけど、管理サイトでデータを削除すると UnicodeEncodeError が起こってた。まあ Unicode-branch のマージの影響だろ…

Django でユーザ管理をアウトソース

Webサービスを開発するにあたり、ユーザにパスワードをもう一組管理させるのは避けたい。というか自分が管理したくない。ポータル的なサービスじゃない限り、それは無駄に敷居を上げてるだけなんじゃないかな。特にこれだけ開発が簡単になってくると、ちょっ…

さくらに trac と Django を共存させる

Django で本棚管理アプリを作ろうと思い立って、さくらに Django を入れてみたら結構手間取ったのでメモ。 参考にしたところ さくらインターネット、CGIでDjangoを動かす: 30からのBlog sh1.2 pyblosxom : CGIでDjangoを動かす 手間取った理由 普通にインス…

ちょっとした覚え書き

書いておかないと忘れそうなのでメモ。Django 0.96 用。 Apache での認証に Django のユーザデータベースを使う http://michilu.com/django/doc-ja/apache_auth/ できなかった。入力してもパスしない。 やりたいのは、 Subversion と trac の認証を Django …

Djangoの認証をActive Directoryで

Djangoを使った社内アプリで、ユーザ登録を自分でやってもらうところまで出来たんだけど、このアプリのためにIDとパスワードを覚えるのがめんどくさい。 社内で Active Directory が動いているんだから、それを使って認証できないか試してみたらなんとなく動…

管理画面でファイル名に日本語を含むファイルをアップロードしてみる

前提とする環境は http://d.hatena.ne.jp/re_guzy/20070424/p1 と同じ。 Windows 2003 Server、Python 2.4.4、 Django 0.96(SQLite使用) で動作確認済み。※oldformsを使っているので、Django 0.96 より後のリリースでは動かないはず。 困ったこと FileField…

trac と Django アプリケーションをapache+mod_pythonで

社内向けDjangoアプリを公開するためにapacheをセットアップして、ついでに課題管理用にtracをセットアップしてみた。 そしたら半日くらいはまったのでメモしておく。 環境は apache 2.0.59, mod_python 3.3.1, python 2.4, Django 0.96, trac 0.10.3.1-ja理…

ある条件下で、Qオブジェクトを使ってOR演算すると期待した通りにならない

原因がわからないので、後で調べるためにメモしておく。 環境はPython2.5、Django0.96、WindowsVista・XPで確認した。 例えばこんなモデルがあったとして、 from django.db import models class GrandChild(models.Model): name = models.CharField(maxlengt…

ManyToManyのフィールドを持つモデルの初回save時に、参照先が取得できない問題に対処する。

モデル保存時に何かしたい場合は、saveメソッドをオーバーライドすれば大抵のことはできる。 なんだけど、ManyToManyのフィールドを持つ場合はうまくいかない。 それを何とかしようといろいろやってたら、いい方法が見つかったのでメモ。 (Python 2.5, Djan…

Djangoでジェネリックビューの続き

via http://d.hatena.ne.jp/Voluntas/20070325/1174799784 via http://d.hatena.ne.jp/akkt/20070325/1174809264 いきなり2人からトラックバック頂いて少々焦り気味ですが。 コメントだと長くなりそうなので、こちらに書いてみます。 def search_auther(req…

Djangoのジェネリックビューで検索結果を表示してみる

最近社内で使うアプリをDjangoで作ってみてるわけなんだけど、Djangoすごすぎ。 C#とかJavaで作ったら結構工数かかるよなー、っていう管理系画面がコマンド一発で作れる。 しかもWebアプリでありがちな画面のための仕組みが用意されてて、ページングまでして…