2017-06-13 9 views
0

を選択肢を作成するときに、DBのレベルでまたはモデルの観点から、どちらか Djangoのモデルの選択の違い

prod = 'Production' 
purch = 'Purchasing' 
support = 'Support' 
DEPT = (
    (prod, 'Production'), 
    (purch, 'Purchasing'), 
    (support, 'Support') 
) 

DEPT = (
     ('Production', 'Production'), 
     ('Purchasing', 'Purchasing'), 
     ('Support', 'Support') 
    ) 

...の間に違いはありますか? 別の方法でそれを書いていくことの利点はありますか?

答えて

1

後で最初の例で変数を変更することができます(コードをよりきれいにするかもしれません)という考え方とは別に、2つの違いはありません!

0
PROD, PURCH, SUPPORT = range(3) 
DEPT = ( 
(PROD, 'Production'), 
(PURCH, 'Purchasing'), 
(SUPPORT, 'Support') 
) 

これは、選択肢を定義する良い方法です。

0

データベースレベルで違いはありません。

第1の方法は、あなたが、たとえば、後続のコードで変数を参照できることを意味します

class Employee(models.Model): 
    ... 
    department = models.CharField(max_length=30, choices=DEPT, default=prod) 

これは、あなたが文字列を繰り返している場合default=prod[0][0]、またはdefault="Production"は(タイプミスの可能性があることよりよいです変数を使用するのではなく

関連する問題