2015-03-03 45 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