1

テーブルとタプルに定数値を格納する場合のベスト プラクティスは何ですか。たとえば、これを行う方が良いですか:

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)
4

1 に答える 1