何时在表和元组中存储常量值的最佳做法是什么?例如,最好这样做:
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 tutorial's pizza example。但我想我可以拥有这个:
class Topping(models.Model):
TOPPINGS = (
(0, 'Tomato'),
(1, 'Peppers'),
...
)
topping = models.IntegerField(choices=TOPPINGS)
class Pizza(models.Model):
topping = models.ForeignKey(Topping)
答案 0 :(得分:0)
我有一个非常基本的答案:
每当您的域名发生变化时,请使用另一个(domain_)表(或其他类),如pizzaname;如果你没有看到改变的机会 - 比如性别(m / f /不知道)保持简短,尽管性别(条目)可能会改变,范围不会(或者很可能不会)