Django

form.clean_xxxの実行順

重要な追記 コメ欄でぼこすか殴られたので追記。 こういう複数のフィールドにまたがるバリデーションはcleanを使うべきで、↓みたいなコードを書くべきではありません。 この記事の趣旨は今まで不定だと思いこんでたclean_xxxの実行順が実は決まってたという…

django標準テンプレート構文で文字列の足し算ぽいこと

forloop.counterを使って「お届先住所X」という文字列をテンプレート上で作りたかったのだが、あいにくdjangoテンプレートは簡単には足し算ができるようになっていない。addフィルタを使えば "お届け先住所"|add:"いち"のようなことはできるのだが、"いち"を…

デフォルトマネージャという地雷

djangoのモデルデータはマネージャというオブジェクトを介して取得します。独自定義のマネージャを使うことでデフォルトとは違う挙動をさせることができて便利ですが、地雷もありますよという話。http://docs.djangoproject.com/en/1.2/topics/db/managers/#…

HTTPRequestオブジェクトの手動生成

ビュー関数のテストをするときにてきとうなHttpRequestが欲しいなら1. django.http.HTTPRequestをつかう from django.http import HttpRequest request = HttpRequest() request.POST["key"] = "val" 2. django.core.handlers.wsgi.WSGIRequestをつかう requ…

クラスベースビューとreverseとDjangoのURLディスパッチ

以下、django1.2.0時点の話です。 参照: クラスベースビューとデコレータとkwargs - logiqboard viewクラスを使ったURL設計 前回の記事でいうところのshopとgoodsのように、URL・機能的にはshopという大枠にまとまってはいるんだけど、その中に小機能がいっ…

クラスベースビューとデコレータとkwargs

クラスベースビューとデコレータを駆使するとDRYに書けていいですねーという話。 たとえば こんなURL設計のページを実装するとする。 /shop/<shop_id>/ /shop/<shop_id>/goodsA/<goodsA_id>/ /shop/<shop_id>/goodsA/ /shop/<shop_id>/goodsA/<goodsA_id>/buy /shop/<shop_id>/goodsA/<goodsA_id>/confirm /shop/<shop_id>/goodsA/<goodsA_id>/buy_finish /shop/<shop_id>/</shop_id></goodsa_id></shop_id></goodsa_id></shop_id></goodsa_id></shop_id></shop_id></goodsa_id></shop_id></shop_id>…

Django+Tritonnで日本語全文検索の追記

Django+Tritonnで日本語全文検索〜重み付けもあるよ〜 - logiqboard テーブルの持ち方 レプリケーションのスレーブの一つをサーチ用にして、そこのBookテーブルにインデックスを張ればよいという話をしてもらった。なるほどそれならマスタ書き込み系に影響を…

Django+Tritonnで日本語全文検索〜重み付けもあるよ〜

DBにTritonnを使ってDjangoから全文検索をする という話 Tritonnってなに?どうやって入れんの かつあい モデル構造 class Book(models.Model): """本""" title = models.CharField(max_length=255) desc = models.TextField() pub_date = models.DateTimeFi…

GenericForeignKey

関連 nullpobug勉強会03 "ContentTypesを使おう" - logiqboard 今回の主題 GFKきもいです GenericForeignKeyとは "一般化リレーション"を実現する、django.contrib.contenttypesの機能のひとつです。要はどんなモデルにでもリレーション張れるモデルが作れる…

Django1.1形式のadmin

Django1.1ではadminサイトのURLマッピングを urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), ... と書くのが推奨とされてるわけですが、旧来の形式が urlpatterns = patterns('', (r'^admin/(*)', admin.site.root), ... こんな形式な…

nullpobug勉強会03 "ContentTypesを使おう"

>03 たぶん。去る土曜に開催されました月イチnullpobug勉強会。今回のテーマはContentTypes。 メンバー 講師:id:nullpobug 生徒:id:feiz ContentTypesってなんだ インスタンスとモデル名とを結びつける仕組み。とでも言えばいいんだろうか・・・ Djangoで…