テーブルとタプルに定数値を格納する場合のベスト プラクティスは何ですか。たとえば、これを行う方が良いですか:
class ModelA(models.Model):
SOME_VALUES = (
(0, 'A1'),
(1, 'A2'),
(2, 'A3'),
)
fieldA = models.IntegerField(choices=SOME_VALUES)
または、定数値の別のモデルを用意します。
class ConstantValue(models.Model):
text = model.CharField(max_length=2)
class ModelA(models.Model):
fieldA = models.OneToOneField(ConstantValue)
フィクスチャが読み込まれConstantValue
ます。
私のコードには上記の組み合わせがありますが、ある程度の一貫性が必要です。
では、多対多の関係はどうでしょうか。ManyToManyField
上記の定数を持つモデルと、関係を持つ定数モデルを指す別のモデルがあります。これは、 Django チュートリアルのピザの例に似ています。しかし、私はこれを持つことができると思います:
class Topping(models.Model):
TOPPINGS = (
(0, 'Tomato'),
(1, 'Peppers'),
...
)
topping = models.IntegerField(choices=TOPPINGS)
class Pizza(models.Model):
topping = models.ForeignKey(Topping)