Django模型选择:使用元组的第一个元素

时间:2016-04-05 10:38:47

标签: python django

我有一个带有这样的选择属性的模型:

commonness_choices = (
    ("1", "very uncommon"),
    ("2", "uncommon"),
    ("3", "common"),
    ("4", "very common"),
)

class Event(models.Model):
    commonness = models.CharField(max_length=30, choices=commonness_choices)

当我尝试在views.py中使用Event.commonness时,它使用每个选择元组的第二个元素。例如,如果我这样做:

event = Event.objects.get(pk=1)
event.commonness = "uncommon"

event.commonness设置为(" 2"," uncommon")。当使用event.commonness时,它使用第二个元素" uncommon"而不是第一个元素" 2"。有没有办法选择和使用元组的第一个元素? 我希望在不同的情况下同时使用元组的第一个元素和第二个元素。

2 个答案:

答案 0 :(得分:0)

我会设置你的选择:

class Event(models.Model):
    VERY_UNCOMMON = 0
    UNCOMMON = 1
    COMMON = 2
    VERY_COMMON = 3

    COMMONNESS_CHOICES = (
        (VERY_UNCOMMON, _('Very Uncommon')),
        (UNCOMMON, _('Uncommon')),
        (COMMON, _('Common')),
        (VERY_COMMON, _('Very Common')),
        (CANCELED, _('Canceled')),
    )
    commonness_choices = models.IntegerField(
        choices=COMMONNESS_CHOICES, default=VERY_UNCOMMON)

例如,只要您想拨打该号码,就可以Event.VERY_UNCOMMON。这将返回0(第一个元素)。

这有意义吗?

答案 1 :(得分:0)

我更改了代码,以便event.commonness设置为“2”并使用event.get_commonness_display()来查看元组的第二个元素。它按照我的意愿运作。感谢您在评论中提供帮助!