at_yasu's blog

ロード的なことを

django

テンプレートでモデルのクエリーを出す

テンプレートタグ内で、よく関連する情報を引っ張ってきたい時がある。その時は、Modelにメソッドを付けて {{ hoge.method }} としてやればいい

__str__ と __unicode__ と Python3

いちおう、Django1.5から(だっけ?忘れた)はPython3対応をうたってるけど、__str__ と __unicode__ があってそれの対応方法デコレ from django.utils.encoding import python_2_unicode_compatible @python_2_unicode_compatible class Room (models.Model):…

CakePHP の DebugToolbar みたいなのがほしい

django-debug-toolbar をいれればいい(Django1.6で動いた)1. pip install django-debug-toolbar 2. インストールした先(virtualenv で py27 とかしている場合、「py27/lib/python2.7/site-packages/debug_toolbar」)にあるtemplates と static を適切な…

ログインしてないとアクセス出来ないようにしたい

デコれviews.py from django.contrib.auth.decorators import login_required @login_required(login_url='/accounts/login/') def user_index (request): ...

Cake の Session->flash みたいなのはないのか?

メモ書きを一気に。view 側 {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %} view.py 側 from django.contrib import messages MESSAGE_TAGS = { messages.INFO: '', 50: 'critical', } d…

Model.dbの事(ほぼ愚痴)

GoogleAppEngine(以下GAE)は、Djangoのモデルではないので、Djangoはそのままじゃ使えない。てなわけで、Django HelperやAppEnginePatchがあるのはわかる。 でもそれぞれ使う理由が無い気がしたので、素のままのDjangoを使ってみた。「Error was: type objec…

change to mod_python for mod_wsgi.

Django App をapacheで動かしているんだけど、mod_pythonとmod_wsgiでどうかわるのかしらと思い、少しばかり試してみた。 FreeBSD 8.0-R Apache 2.2.13 python 2.5.4 mod_python 2.7.11 mod_wsgi 2.8 memcached 1.2.8 結果的には、若干、起動時のパフォーマ…

PostgreSQLで全文検索

検索を使いたいなぁと思い、突発的に使ってみました。検索でも(今のところ)0.1ms〜0.5ms程度な状態です。 インストール 今回は巷で話題のLudiaを使ってみました。PostgreSQLのバージョンが8.3.6で仕様変更があり「IndexBuildHeapScan」関数の引数が一つ増…

クエリーセットのfilterメソッド

よく忘れてGoogle先生に尋ねる羽目になるのでメモ書き。Djangoのデータベースラッパであるfilterを使う時、SQLで言う「where a like ...」や「where a > 0」とかを、filterではどう書くのか忘れます。例えば完全一致だと、SQLの場合は「where a == ...」です…

Cacheに関するメモ書き

当機 FreeBSD7.1-R database/memcached を ports経由でインストール http://gijsbert.org/cmemcache/ はmemcache.hが無いといわれてインストールできず。たぶん何かを忘れてる気配。 python-memcached をインストール 設定とかは、Django’s cache framework …

templateのバグ?

template内に、ManyToManyのフィールドにアクセスしようとすると、「'ManyRelatedManager' object is not iterable」と言われて怒られる。おそらくこれは、ManyToManyのアクセスする時にQuerySetだと、ManyToManyのフィールドにアクセスすると対多テーブルへ…

メモ書き

今までまじめにdjangoで作ってなかったので、公開した際にアラが出たのでメモ書き。2時間ほどでさくっと各ブックマークサイトのブックマークトップ一覧*1を表示するサイトを作ったのだけど、公開したらいろいろがたがたとなったので、反省を込めて。 model名…

QueryDictと配列

QueryDict型から、a['item']とかで値を取得しても、中は配列だが取得できる値は配列の末尾の値のみ。配列(List)で取得したい場合は「a.getlist('item')」とする必要がある。forでループ処理したい場合は、「a.lists()」を利用し、タプル型で取得するのが良い…

複数の値を送信

inputフィールドが複数あり、それぞれ同じname属性の場合、Djangoは配列として扱う。 URL: http://127.0.0.1:8000/?f=1&n=1&f=2&n=2&f=3&n=3&f=4&n=4&f=5&n=5&f=6&n=6&f=7&n=7&f=8&n=8&f=9&n=9&f=10&n=10&f=11&n=11&f=12&n=12&f=13&n=13

メモ書き

ちょっと頭でまだまとまりきってないけど、メモ書き。

Modelの継承メモ書き兼auth.Userモデルのプロフィールの追加の事。

先にあるModelを継承したModelを作った場合、どんな事になるか実験と、django.contrib.auth.model.Userモデルを拡張する方法。

メモ書き

よく忘れるのでメモ書き。versionは、1.1.0 alpha。svnで取得。ただ1.0のドキュメントを見ながら作ったので、1.0と変化無し。練習として、もの凄く簡単な掲示板を作成。複数の板と言われるものがあって、その板にそれぞれコメントを投稿していく形。投稿した…

マニュアル

Djangoの日本語化されたマニュアルがアップデートされているので、メモ書き。リンク:http://michilu.com/django/doc-ja/index/# 最近、ハイクがメインです・・・

newformのメモ

Djangoで、HTMLのfieldの属性等を管理するクラスFieldのメモ。HTMLのFieldの属性はwidgetというクラスで管理し、Fieldオブジェクトはwidgetオブジェクトを呼び出してごにょごにょするみたい。

UUID Field

DJangoで、DBにUUIDのフィールドを追加することがあったのでメモ書き。てか、これで合ってるのか自身無い。 class UUIDField (models.CharField): def __init__(self, *args, **kwargs): kwargs['max_length'] = kwargs.get('max_length', 36) kwargs['defau…

dumpdataの事 -- メモ書き

manage.py dumpdataの時に、拡張子は必ず指定する事。loaddataの際、djangoは拡張子で読み込むファイルのフォーマットを決めている。

DB拡張メモ書き

DBのフィールドを後から追加した時にした、djangoでの作業メモ。使用したコマンド dumpdata [model name] > ... DBにあるmodelのデータを出力させるコマンド resetsql [model name] 変更したモデルのSQLが正しいか確認 reset [model name] DBを再構築させる…

Userテーブルとのリレーション -- 解決

解決。単純にキャッシュがキツすぎるだけ+テンプレートの変数間違い+等々が原因でした・・・orz勝手な教訓、開発時はMaxRequestsPerChild を 1 にしてmod_pythonを応答させないようにするそうな。てか、本当に動的な所だとキャッシュしてもらったら困る部…

ちょっとしたメモ

server(mod_python)のめも 開発中はPythonAuthenHandlerをOffにする必要があるぜよ。(素直に三日間もハマってた・・・) Django のモデルのメモ 例えば、DjangoのDBAPIリファからまんま書いている事だけど、blogとentryというモデルがあって、blog/entryは…

Userテーブルとのリレーション

登録したユーザしか書き込めないwebpageを作っているんだけど、書き込む際にユーザIDの取得方法にハマってます・・・

Djangoインストールメモ

ymasuda.jpさんが日本語訳を書いているけど、ちょっと古っぽいので追加補足的な事を一覧。英語インストールドキュメント PostgreSQLを使う場合は、1.1もしくは2.0を使う。 DJangoのDB設定の時、1.1の時はpostgresqlを、2.0の時はpostgresql_psycopg2を。 2.0…