1

私は1つのメインモデルを持っています:

ToolBox

および他の3つのモデル:

Hammer
Nail
Plier

明らかに、ToolBoxには、ハンマー、釘、またはペンチの任意の組み合わせを含めることができます。

Djangoを使用して、この動的なタイプの関係の優れたORM表現は何ですか?これらの各モデルは独自の豊富な属性セットを持つことができるため、単純な型フィールドでは機能しないことに注意してください。また、Djangoの管理インターフェースが機能する場合、この動的なタイプのものにどのように微調整できるのか疑問に思っています。

4

1 に答える 1

1

動的とはどういう意味かわかりませんが、あなたの例は非常に典型的だと思います。

とにかく、状況を回避するために:

Toolbox
    many2many(Hammer)
    many2many(Nail)
    etc... (add new m2m field every time you add another tool class)

私は次のようにします:

Toolbox

Hammer
    foreignkey(Toolbox)

Nail
    foreignkey(Toolbox)

これにより、実装がはるかに簡単になります (toolbox.hammer_set などを使用します)。Hammer、Nail などに共通のフィールドがいくつかある場合は、すべての共通フィールドを保持する抽象基本クラス (Tool など) を定義することもできます。

于 2012-10-13T20:44:36.850 に答える