2016-12-15 52 views
0

我有一個屬於不同類別的所有產品的列表。在Django的所有產品中查找不同的類別

model.py

class Product(models.Model): 
     product_name = models.CharField(max_length=50,null=True, blank=True) 
     details = models.CharField(max_length=100, null=True, blank=True) 
     company_name = models.CharField(max_length=50,null=True, blank=True) 
     category = models.ForeignKey(ProductClass,null=True, blank=True) 

類別是ProductClass一個ForeignKey

現在我想要一個所有不同類別的列表。我不想要重複類別的列表。對於我試圖obj = CustomerLeads.objects.all()

obj = Product.objects.all() 


    c = [] 
     for i in obj: 
      c.append(i.item_required) 

     cat = set(c) 
     return JsonResponse({'data':cat}) 

我收到錯誤set([<ProductClass: accessories>, <ProductClass: other>]) is not JSON serializable

我怎樣才能得到所有不同類別的清單?

+1

錯誤是安靜清晰,'設置([])'設置ProductClass情況下,這顯然是不序列化時,你要發送的他們通過JsonResponse。嘗試發送名稱,ID和任何你需要的數據類別的字典。 –

+0

你可以幫我一些示例代碼 –

+0

什麼'CustomerLeads'與什麼有關?它不只是'ProductClass.objects.all()'?你在哪裏試圖獲得這份清單? – Sayse

回答

0

distinct()消除queryset 的重複元素。

values_list(* field,flat = True)用於返回值列表。

Product.objects.values_list('category__category_name', flat=True).distinct() 

#output 
[u'Lamps', u'Professional', u'LED', u'Automotive'] 

Reference

相關問題