在django中,你应该在你的模型中使用它作为枚举字段(如果我理解正确的话,我对Django的工作时间不长):
class Car(models.Model):
TYPE = ( ('SUV','race') )
type = models.CharField(choices=TYPE, default='SUV', max_length=20)
稍后,在过滤器中,我可以使用它:
suvs = models.Car.objects.filter(type='SUV')
但这意味着一个简单的拼写错误(SUB
而不是SUV
)可能会导致错误,但代码无法解决此问题。有没有解决的办法?或许像
suvs = models.Car.objects.filter(type=models.Car.TYPE.SUV)
答案 0 :(得分:1)
您可以使用django-choices包来表示这样的行为。使用它,您可以:
class Car(models.Model):
class CarType(DjangoChoices):
SUV = ChoiceItem('something')
BUS = C('something else')
type = models.CharField(choices=CarType.choices, default=CarType.SUV, max_length=20)
稍后再使用它:
suvs = models.Car.objects.filter(type=models.Car.CarType.SUV)