TurboGearsで困っていること
思うところがあって、WebアプリケーションフレームワークのひとつであるところのTurboGearsをいじり始めました。
Djangoの安定性、コンセプトの一貫性に惹かれていじくりまわしていたのですが、良いとこどり感の強さが目立ってきたTurboGearsにフラフラと引き寄せられている次第です。
最近のこの手のフレームワークで良くある、命名規則によって良きに計らってくれるのですが、その命名規則がちょっと気に入らないかも。
クラス名は大文字小文字区切りでも'_'区切りでもOKなのですが、属性名はNGらしい。
NGになるパターンと、CatWalkでCPUTypeに対してデータ入力した後、データをBrowse時に表示されるエラーについてメモします。
最後に、OKのパターンを記します。
開発者用ドキュメントすべてを読んだわけではないので、単に使い方がアカンのかもしれませんが。
- NGのパターンA
class PC(SQLObject): cpuType = ForeignKey("CPUType") class CPUType(SQLObject): pcs = MultipleJoin("PC",joinColumn='cputype_id') name = UnicodeCol(unique=True,notNone=True)
-
- 出力されるエラー
AttributeError: PC instance has no attribute 'cputypeID'
- NGのパターンB
class PC(SQLObject): cpu_type = ForeignKey("CPUType") class CPUType(SQLObject): pcs = MultipleJoin("PC",joinColumn='cpu_type_id') name = UnicodeCol(unique=True,notNone=True)
-
- 出力されるエラー
AttributeError: PC instance has no attribute 'cpuID'
- OKのパターン
class PC(SQLObject): cputype = ForeignKey("CPUType") class CPUType(SQLObject): name = UnicodeCol(unique=True,notNone=True) pcs = MultipleJoin("PC",joinColumn='cputype_id')