在Django中为选择实现命名组的正确方法

时间:2016-07-18 04:53:04

标签: python django

我是新手,我想知道如何在命名组中做出选择,在django文档中它说"您还可以将您可用的选择收集到可用于组织目的的命名组中#34 ;.根据文档,我尝试在下面制作一些模型

python_2_unicode_compatible
class Music(models.Model):
    Media_Choices=[('Audio',(('vinyl','Vinyl'),
                    ('cd','CD'),))
                   ,('Video',(('vhs','VHS Tape'),
                              ('dvd','DVD'),)),
                   ('unknown','Unknown'),]

    Music_Media=models.CharField(max_length=10,choices=Media_Choices)

    def __str__(self):
        return self.get_Music_Media_display()

当我为我的模型进行迁移和创建对象时没有问题,我的问题是如何在查询时访问组选项的元组(特别是选项的人类可读名称)?这是我的代码吗? (实现选择进入命名组的方式),如果我错了,请纠正我。谢谢。抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

为了检索人类可读的名称,您需要使用Model.get_FOO_display()方法。

在你的情况下,这应该可以解决问题。

#lets say song is a Music object
print song.get_Music_Media_display()

以下是此方法的更多文档。 https://docs.djangoproject.com/en/1.9/ref/models/instances/#django.db.models.Model.get_FOO_display