2015-03-03 68 views
0

比方说,我有名字领域的典范:Django的模型导入词典理解

class Category(models.Model): 
    name = models.CharField(max-length=50) 

我想建立一个名为关键和实例作为值所有类别的字典。

有没有比这更简单的方法?

category_map = {name: instance for (name, instance) 
       in [(c.name, c) for c in Category.objects.all()]} 

我知道有in_bulk API在Django:

category_map = Category.objects.in_bulk() 

但是它使用主键,我没有看到一个方法来使用不同的领域来代替。

我正在使用Django 1.6.5。

回答

2

你不需要第二for循环:

category_map = {c.name: c for c in Category.objects.all()} 
+0

当然,不知道为什么我用了迂回的方式。 – 2015-03-03 10:46:57