2016-05-16 12 views
1

私のプロジェクトではさまざまなアプリがあり、モデルにはmodel.pyごとに個別の選択肢があります。Djangoモデルフィールドのベストプラクティスとは何ですか?

同様:しかし

size = models.CharField(max_length=1, 
          choices=SIZE_CHOICES) 

SIZE_CHOICES = (
    ('f','feet'), 
    ('i','inches'), 
    ('y','yards'), 
    ('m','milimeters'), 
    ('c','centimeters'), 

) 

オプションは、すべてのアプリケーション間で共有されているのと同じ選択肢のいくつか。

すべて同じ選択肢を1か所に持つベストプラクティスは何ですか?
(理想的には、エンドユーザーがコード内で定義することができるどこかの場所)

+0

あなたはいつでも設定ファイル –

答えて

1

私が通常行うことは、そのための特定のアプリケーションを作成することです。だからtoolsアプリ、例えば、私はchoices.pyを定義しています。その中で私は選択肢をハードコードし、必要なときにそれらをインポートします。 また、自分で作成することができるシンプルなモデルを作成することもできます。次に、__init__関数を使用して、それらを特定のフィールドに追加することができます。しかし、実行時にそれらを追加する必要があるので、その解決策は過度に複雑になります。 最も簡単な解決策は、ハードコードされたchoices.pyを作成することです。私はあなたが一度やろうとしていることを試してきましたが、それは大きな混乱であることが判明しました。本当に必要な場合を除いて、choices.pyファイルを手動で管理することをお勧めします。

関連する問題