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')