djblogkit改良中

2006年12月31日(日) 02:50 この記事をクリップ!

djblogkitにAjaxで関連コンテンツを操作できる機能を付けています。


2006年最後の状況をスクリーンキャストで公開します。なんとなく、無駄にAjaxです。


ムービーをみてもらってもわからないと思いますが、結構めんどうなバリデータを使っています。



面倒なのは、「ブログのエントリに設定した質問と答えによる、コメントのバリデータ」と「関連コンテンツに指定可能なモデル以外ははじくバリデータ」ですが、Djangoはバリデータをシンプルかつ容易に設定できるので、実は簡単です。管理インターフェースでも変梃なカスタムバリデータを使えることがわかってもらえると思います。バリデータだけではなく、本文の入力箇所に好きなWYSIWYGエディタを仕込むとかいうことも簡単にできます。


以下、特徴

ログインしているユーザに対しては、表画面で関連コンテンツ設定用のAjaxコントローラ(見た目に難ありw)を出すようにしています。AjaxはJavaScriptをたくさん読み込んでうざいので、ログインしていない場合にはJavaScriptの読み込みもしていません。
テンプレートの継承をいかしているので、エントリ詳細ページ以外にはログインをしていてもJavaScriptの読み込みはありません。


関連コンテンツに指定可能にするためには、モデルにいくつかの定義を追加するだけです。検索項目を統一するために独自の統一メタデータを定義するようなことはしたくないので、管理インターフェース用の定義を使って検索する項目を決定しています。検索時に、あえてコンテンツタイプを指定しているのは、ノード数が増えたときに網羅的に検索にいくのは馬鹿げているからで、すべてなめるのが不可能な訳ではありません。

関連コンテンツに設定されているオブジェクトを削除すると、自動的に関連コンテンツの設定が解除されます。もちろん、管理インターフェースからの削除で構いません(Pythonシェルからでも大丈夫)。


関連コンテンツのモデルは、インラインか否かのフラグを設定可能で、インラインの場合には、モデルごとにインライン表示用のテンプレートを指定できます。


追加した機能のデザインが大きな難となっているため、いつになるかはわかりませんが、もう少しましにして公開します。



 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar