2012-01-04 16 views
0

私は様々な '参照'テーブルを参照する1つのメインテーブル/モデルを持つdjangoアプリケーションを持っています。たとえば、Clientはメインテーブルで、外部キーの関係を介してTitleCode、OccupationCodeなどを参照します。 'ルックアップ'テーブルはすべて構造(PK、コード、Display_Value)でかなり似ています。 djangoでこれを行う明白な方法は、各ルックアップテーブルのmodel.Modelsから派生した明示的なクラスを持つことです。ちょっと繰り返しますし、各テーブルの半カスタム管理フォームを使用すると、さらに面倒です。何か案は?私はベースで実際のモデル定義を実装するベースクラスを作成し、次にこれらのベースクラスから特定のルックアップテーブル/モデルを導き出すことを考えていました。これが現在実行可能かどうかを確認します...Djangoでルックアップテーブルを実装するための良いパターンは何ですか?

答えて

0

Codeという抽象モデルを作成し、そこから特定のクラス(TitleCode、OccupationCodeなど)を継承してください。 ModelFormsは多くのコードではなく、すべてのものに使用できます。

もうひとつの解決策は、CodeクラスとCodeTypeクラスを作成することです。そこに必要なすべてのフィールドを入れ、いくつかの型にあり、他の型ではない場合はオプションにします。次に、CodeオブジェクトはFKからCodeTypeになります。

+1

多分、例がいいと思うかもしれません:)私は、この答えが役に立たないdjango/pythonの十分な(まだ)新しい例です。しかし、私はこれがC#/ .netでEntityFramework経由でどのように行われるのか知っています。 2つのパラダイムは決して相関しません。 – IAbstract