daemonfreaks.com

HappyNutty L.P.U. 10th Anniversary Special! at TRIANGLE

posted by jun-g at 日, 14 10月 2007 01:22 JST

L.P.U.10周年!! おめでとうございますって事でちょっとしたお祝いを持って遊びにいってきたよ。

ていうか

リアル神キタ━━━━━(゚∀゚)━━━━━!!!!

まさかのリアルSL2がOn A Ragga Tipやもんなぁ。そら興奮するよな!!

他にもなんか色々あって、久しぶりに楽しいパーティやった。HappyNuttyもこの調子で10周年に届くまで続けてもらいたいなぁ。

システム制御情報学会セミナーに参加 その2

posted by jun-g at 日, 14 10月 2007 00:56 JST

2日目も参加。これまた適当なメモを。

  • セマンティックウェブって思ってたより深い。
  • 僕はあまりにもアカデミックな内容の話はあまり好きじゃないらしい。初めて気付いた。
  • 認証にはこれといった決定打が無い。

両日とも色々と為になる話が聞けたので、参加してよかった。

さて、会社への報告書を書かねば…。

システム制御情報学会セミナーに参加 その1

posted by jun-g at 木, 11 10月 2007 23:21 JST

システム制御情報学会主催のセミナー「ウェブを守る、ウェブを活用する」に参加してきた。参加費用が結構高額だったので珍しく会社に出してもらった。会社に出してもらうのあまり好きじゃないんやけど、たまにはいいよね。

コミュニティ主催の勉強会のレポートみたいに詳しく書いて良いものかよくわからんので、適当なメモだけ書いとく。

  • セキュリティリスクはコスト換算してやるとスーツの連中も理解しやすい。なるほど。
  • 可視化重要。ミクロ/マクロ/相関という3つの解析の視点。この考え方はうちでも応用できるかも。
  • グニャラくんキタ━━━━━(゚∀゚)━━━━━!!!! 名刺交換させて頂きました。
  • kfuruhataさんは「ニコ動」という言葉に反応しすぎ。自重汁w

もちろん明日も参加します。わくわく。

Djangoの新規作成の汎用ビューでフォームのデフォルト値を設定したい

posted by jun-g at 日, 07 10月 2007 20:32 JST

汎用ビューの勉強がてら、views.pyを一切書かずにツールを作ってみるか、と思って試してみてるんやけど、いきなり躓いた。

作っているツールはちょっとしたメモ用のツールで、画面上、内容と日時を入力するテキストフィールドが表示される。この日時のフィールドにデフォルト値として現在日時を設定しておきたいんやけど、やり方がわからなかった。一応調べたとこまでメモ。

とりあえずdjango.views.generic.create_update.create_objectのソースを読んでみたところ、マニピュレータを自作して、flatten_data()メソッドを実装すれば良さそうな感じがしたので、さらにdjango.db.models.manipulatorsを読んで、モデルクラス内に以下のクラスを追加してみた。

class AddManipulator(models.manipulators.AutomaticAddManipulator):
    def flatten_data(self):
        now = datetime.now()
        return dict(
            rec_time_date = now.strftime('%Y-%m-%d'),
            rec_time_time = now.strftime('%H:%M:%S'))

しかし、ここで定義したクラスはまったく使われていない様子。python manage.py shellを起動して確認してみたところ、モデルのAddManipulatorは<class 'django.db.models.manipulators.AddManipulator'>を参照していたので、自分で定義したAddManipulatorクラスは自動マニピュレータで上書きされているっぽい。

ドキュメント見ても「このビューは、 Django モデルに付属の自動マニピュレータを使います。」って書いてあるしなー…。やっぱり汎用ビューを止めてviews.pyを書いたほうがいいのか…?

Djangoのテンプレートでsettings.pyのMEDIA_URLを参照

posted by jun-g at 火, 25 9月 2007 01:36 JST

そういえば静的なコンテンツを一切扱ってなかったなと思い、まず、ドキュメントのmod_python で Django を動かす - メディアファイルの提供を参考にしてApacheの設定を変更。元々/django/以下をdjangoで動くように設定していたので、

<Location "/django/media/">
    SetHandler None
</Location>

とした。後はdjango/media/以下にアプリケーション毎にディレクトリを掘って、その中にメディアファイルを入れればOK。

しかし、テンプレート内の画像タグなんかでURLを全部絶対パスで書いちゃうと可搬性が下がるという問題に気付いた。で、settings.pyにMEDIA_URLっていう設定があった事を思い出したので、それをテンプレートから参照する方法を調べてみたところ、やっぱり同じ事考えている人はいた。

テンプレート上でのMEDIA_URL呼び出しについて その2 | pythonでつくるskyfish開発ブログ

上記ページのeveresさんのコメントを参考にsettings.pyに、

from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = \
    global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
    'myproject.context_processors.media',
    )

を追加。で、Djangoプロジェクト直下にcontext_processors.pyを作成し、その中に、

from django.conf import settings
def media(request):
    return {'MEDIA_URL': settings.MEDIA_URL}

と書いた。generic viewsを使っているので、以上でテンプレート内で{{ MEDIA_URL }}と書けるようになった。自前のviewsを使用している場合はcontextにRequestContextを指定しないといけないようなので、忘れないようにしよう。

そういえばドキュメントのコンテキストのサブクラス: RequestContextで、TEMPLATE_CONTEXT_PROCESSORSの値のデフォルトは

("django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media")

になっている、と書かれているけど、自分の環境ではdjango.core.context_processors.mediaという値は含まれていなかったし、実際django/core/context_processors.pyの中にはmediaという関数は存在しなかった。バージョンが違うからかな…?

<<  Page 105 of 127  >>