我怎样才能代表Django中的“全局”枚举?

时间:2014-02-28 10:32:57

标签: django django-models enums

我有这样的事情:

class Car(models.Model):

    TYPE_CHOICES = (
        (1, 'Mercedes'),
        (2, 'Audi'),
        (3, 'BMW'),
    )

    car_type = models.CharField(max_length=15, choices=TYPE_CHOICES)

现在我想在另一个环境中过滤汽车(不在这个模型中),最好的方法是什么?

cars = Car.objects.filter(car_type=????)

有人知道是否可以拥有全局常量?并像这样过滤:

cars = Car.objects.filter(car_type=mercedes)

或者,另一种方式......

1 个答案:

答案 0 :(得分:3)

class Car(models.Model):
    TYPE_MERCEDES = 1
    TYPE_AUDI = 2
    TYPE_BMW = 3

    TYPE_CHOICES = (
        (TYPE_MERCEDES, 'Mercedes'),
        (TYPE_AUDI, 'Audi'),
        (TYPE_BMW, 'BMW'),
    )

    car_type = models.CharField(max_length=15, choices=TYPE_CHOICES)

过滤你使用:

Car.objects.filter(car_type=Car.TYPE_MERCEDES)