Django

bpmappersを使ってDjangoテンプレート上の記述を少しだけ簡単にする

DjangoでA データをいくつか作って、テンプレートで表示させる際にManyToManyフィールドがあると、途中の参照でManagerが入ってしまう。 その際にModelMapperを使って記述を少し簡単にしよう、という話。 まあ実際に使える場面は多くない。 myapp/models.py …

Djangoの翻訳状況

Djangoの翻訳状況について。 Django1.3以降の汎用ビューやモデル周りの変更に伴って、未翻訳のテキストが増えていたので少し翻訳作業をしました。 https://www.transifex.com/projects/p/django/language/ja/ localflavor, humanize以外は100%になっています…

ORMを使わずに問い合わせてオブジェクトでごにょごにょ

社内向け。検索用記事。Djangoのバージョンは1.4。 ORMを使わずにSQLを投げて、結果をオブジェクトとして使いたい場合。 bpcommonsは社内の人なら拾ってこれるはず。bpmappersはpipでインストール。 myapp/models.py データベース用のものとふるまいをするだ…

Djangoのアプリケーションでmodelsモジュールを複数ファイルに分割する

Djangoのアプリケーションで、models.pyのコード量が多くなってきたので、複数のファイルに分割する話。 ハマりどころがあるので書いておく。試したのはPython2.7、Django1.4。 testapp/ __init__.py models.py models.py from django.db import models clas…

テスト用のRequestFactoryを使ってみる

Djangoでユニットテストを書く際にテストクライアントを使うことができますが、これはurls.pyを用意しないと使えません。 しかし、ビュー関数のみをテストする場合、Requestクラスのオブジェクトが必要になります。 django.test.client.RequestFactoryを使え…

ソフトウェアの多言語対応を支援するTransifex

今更な感じではあるけど紹介。 ソフトウェアを多言語対応させるためにはgettextなどの仕組みを使うのだけど、それらで使われる拡張子がPOの翻訳データのファイルをオンライン上で編集できるサービスです。 https://www.transifex.net/start/ Transifexがオー…

エラーメールのタイトルにホスト名を含める

いろんな環境で動かしていたり、アプリケーションサーバが複数ある場合、エラーメールがどこから送られたのかパッと見で判別しづらい。 socketモジュールでホスト名を取得できるので、メールのタイトルに入れとくといい感じ。 settings.py import socket EMA…

bpmappers0.5のドット区切りの指定とListDelegateField

bpmappersのサンプルコード。 DjangoのManyToManyFieldに対するアプローチ。 バージョン0.5でフィールドのkeyパラメータにドット区切りの文字列を指定できるようになったので、ListDelegateFieldの記述なんかもちょっと簡単にできる。 models.py こんなモデ…

django.utils.dateformat.formatで日時の文字列表現をする

Pythonのdatetimeオブジェクトにはstrftimeというフォーマットを指定して文字列表現を返すメソッドがあるけど、それでカバーできないパターンのときなどに使う。 django.utils.dateformat.formatはDjangoの日時フォーマットを行うフィルタの元の関数。 ドキ…

GoogleAppEngineのアプリケーション内で使うDjangoのバージョンを1.2に指定する

表題の通り。メモ。 AppEngineのSDKは、これを書いてる現在はDjangoの0.96がカレントバージョンで、SDK内部にはDjango 1.2も含まれている。 1.2に切り替える場合はアプリケーションのディレクトリに appengine_config.py を作成して1行書く。 webapp_django_…

webappでdjangoのフォームを使うときにエラーメッセージを日本語にする

AppEngineのwebappでdjangoのフォームを使うと、settings.LANGUAGE_CODEがen-usなのでエラーメッセージが英語になって残念ですよね。 その解決方法など。 main.py 単純なテンプレートでフォームを表示してis_validするだけのコード。 import os from google.…

ブログ内のDjango記事リンクまとめ

昨日のリンクまとめが使いやすかったので、Djangoについてもまとめてみた。数が多いのでちょっと大変だった。 各項目の上のほうが新しい記事で下に行くほど古いです。 古い記事は、Djangoのバージョンも古いので役に立たない可能性有り。内容が酷い物もある…

PostGISのST_SimplifyをGeoDjangoから使う

PostGISのST_Simplifyを使うとPOLYGONやLINESTRINGの形状を単純化できる。 GeoDjangoからはGEOSGeometryのsimplifyメソッドを使えばよい。 Django1.3で試した。 >>> line_string.simplify? Type: instancemethod Base Class: <type 'instancemethod'> String Form: <bound method LineString.simplify of <LineString object at 0xa4ed5f0>> Namespace: Int</bound></type>…

Django1.3のClass-based generic viewsを使う

Django1.3で、汎用ビュー(generic views)が関数からクラスベースのものに変更されました。 http://docs.djangoproject.com/en/1.3/ref/class-based-views/ 使い方などをメモ。 1.2からのマイグレーションについても、ドキュメントに書かれている。 http://do…

3次元の座標を扱う

メモ。GeoDjangoのGeometryFieldはデフォルトでは2次元だけど、3次元にする場合。 dimオプションを3にする。 class MyAddr(models.Model): pnt = models.PointField(dim=3) 参考 http://www.syndim.org/docs/django/ref/contrib/gis/model-api.html#dim

PythonとDjangoを使うときに押さえとくと良いもの

社内向け。 tokibitoの知識が偏ってるので、もっといろいろ知りたいなら社内チャットで他の人にも聞くこと。 Python easy_install setuptoolsかdistributeというパッケージで使えるコマンド。 @aodag 曰くsetuptools使わずに、distribute使えという話。 イン…

Django1.3がリリースされましたね

Django1.3がリリースされましたね Django 1.3 released | Weblog | Django Django 1.3 release notes | Django documentation | Django

django-skypehub 0.2.0 リリース

OnTimeHandlerの追加と指定ユーザへメッセージを送るAPIが追加されてます。 django-skypehub 0.2.0 : Python Package Index

PowerDNSとdjango-powerdnsを試す

DNSサーバをいろいろ試しているところ。 PowerDNSはバックエンドにRDBMSなどを使えるDNSサーバ。 今回はMySQL5.1で試す。OSはubuntu9.10。 PowerDNS 2.9.22, Django 1.2.5. MySQLをインストール。 $ sudo aptitude install mysql-server PowerDNSをインスト…

bpmappers 0.3をリリースしました

bpmappers 0.3をリリースしました。 bpmappers 0.3 : Python Package Index 今回はDelegateFieldに関するマイナーな変更のみ。 追ってドキュメントは更新していきます。 こんな感じのモデルがあったとします。 from django.db import models class Person(mo…

Django1.3のリリースが近いとか

仕事が忙しくてあんまり追えてなかったんですが、Django1.3が今月末ぐらいにはリリースされるかもしれないみたいです。 Django 1.3 release schedule - Update 3 | Weblog | Django 今配布されてる1.3系のアーカイブはbetaなので、次はRCですね。 1.3では、c…

Djangoでguestbookアプリ

とりあえずDjangoを動かしてみたい人向け? Python-hack-a-thon4で使われなかった(参加者いなかったので)アプリの紹介を今さら。 Djangoをインストール済みの環境であればすぐに動かせます。 Django1.2.4で動作確認。 入手 bitbucketに置いています。 tokibi…

djangoのセッションキーについて調べてた

メモ。django.contrib.sessionsのセッションキーが毎回変わる?とかそんな話が出てて、どういう動きするんだったか調べてた。 Djangoのバージョンは1.2.4。 適当に書いたview関数。 views.py from django.http import HttpResponse from random import choic…

SortedDict

djagno.utils.datastructures.SortedDict >>> from django.utils.datastructures import SortedDict >>> d = SortedDict() >>> d['hoge'] = 'fuga' >>> d {'hoge': 'fuga'} >>> d['foo'] = 'bar' >>> d {'hoge': 'fuga', 'foo': 'bar'} >>> d.keyOrder ['hog…

django-pistonとbpmappersでWebAPIを作る

hfunaiの記事に便乗。 http://blog.monospace.jp/2010/10/31/django_piston_intro/ django-pistonを使うとDjangoで簡単にWebAPIを作れます。 jespern / django-piston / wiki / Home — Bitbucket fields/excludeにフィールド名を指定すると、必要なフィール…

DjangoでPHPを使ってみた

id:moriyoshi が php-in-python を作ったらしいので使ってみました。 moriyoshi / php-in-python — Bitbucket django経由でphpinfoを表示させようと思ったけど、CLI版のせいかテキスト表示であんまり面白く無いので、CakePHPを動かしてみました。 settings.p…

modwsgiでDjangoアプリケーションをサイトルート以外に設置する

Apache/modwsgi環境でサイトルート直下以外にDjangoを設置する方法。 Djangoのプロジェクトをサイトルート以外にデプロイする-解決編 - 偏った言語信者の垂れ流し 以前同じようなタイトルで書いたのだけど、そのときはDjango0.97preだったので、Django1.2の…

BPStudy#37

BPStudy#37でDjangoのフォームの話とdjango.utilsの話をしました。 BPStudy#37 : ATND スライド スライドはs6.jsベースで作っています。 http://tokibito.orz.hm/presentation/9/

djangodash2010

3人でdjangodashやってました。 http://djangodash.com/teams/beproud/ beproud / eventstream — Bitbucket

管理画面で使われているページング表示を通常のページで使う

Djangoの管理画面の一覧表示でページング(ページネーション)表示がありますが、あれを通常のページで使う方法です。 django.contrib.admin.views.main.ChangeListオブジェクトを管理画面で使っているのですが、これのモックを作って使ってみました。 Django…