ブログ一覧

Djangoのアプリ集「Pinax」

Pinaxは、Djangoフレームワークで実装されたアプリケーション集です。 デフォルトのテンプレートも最初から提供されているため素早くサイトを立ち上げることが可能です。

用途に応じて、個人のブログサイトやコーポレートサイト、エンタープライズ用途のCMSに至るまで様々なデフォルトプロジェクトも予め用意されており、30〜40個のアプリのどれをインストールして使えばよいか悩むこともありません。  

今回は、Pinaxの全容を紹介します。

Django: Adminページのカスタマイズ方法

関連記事

前回、テンプレートの検索順序とオーバーライド方法について説明しました。
今回はこの仕組みを利用してAdminサイトの見栄えを変更する方法を説明します。

Django: テンプレートの検索順序とオーバーライド

Djangoのテンプレートは、{% extends "hoge.html" %}や{% include "hoge.html" %}などの タグと{{hogevar}}の変数と定数文字列からなっています。

テンプレートを理解する上でもう一つ重要なのが、テンプレートのオーバーライドです。 テンプレートはある規則に従ってファイルシステム内を検索されます。

#正確には、templatedbなどのDBベースのテンプレートデータも存在していますが。
オーバーライドをマスターすると、アプリごとにHTMLを変更したいものだけ別ディレクトリで管理する ことができるようになり、どれくらいの差分開発が発生したかを理解するのに役立ちます。

Django: モデルクラスから自動的にフォームクラスを生成する方法

Djangoでは、モデルを定義するとそのままフォームを生成してくれる機能があります。 ModelFormという機能で、以下のように自動生成したいフォームクラスのメタクラスに、実際にデータが保存されるモデルクラス名を指定するだけです。

Django: モデル間のリレーションを定義する方法

RDBの世界では、正規化の際にテーブルとテーブルの対応関係を定義することがあります。 Djangoが採用しているO/Rマッパの世界でもリレーションを定義することが可能で、以下2つの メソッドが用意されています。

例として、Djangoの既存んモデルクラスであるUserを拡張する例を記述いたします。

Djangoのサンプルソース集を集めたサイト「django snippets」

django snippetsはDjangoのいろいろなアプリを ソース付きで紹介しているサイトです。 このようなサイトはdjango以外でもなかなか無いと思いますので、貴重ですね〜。

ありがたや。ありがたや。