2016-12-15 7 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) 

カテゴリProductClassForeignKeyです。

ここでは、すべての異なるカテゴリのリストが必要です。私は反復的なカテゴリのリストを望んでいません。そのために私は私がどのように私はすべての異なるカテゴリのリストを得ることができますか?エラーset([<ProductClass: accessories>, <ProductClass: other>]) is not JSON serializable

を取得しています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}) 

を試してみましたか

+1

エラーが静かである明確な、 '設定([])'、あなたが送信しようとしているとき、シリアライズ明らかに非されProductClassインスタンスの設定されていますそれらはJsonResponseを通じて。名前、ID、必要なデータを含むカテゴリの辞書を送信してみてください。 –

+0

いくつかのサンプルコードで私を助けることができます –

+0

「CustomerLeads」と何が関係していますか? 'ProductClass.objects.all()'だけではないのですか?このリストを取得しようとしていますか?.. – Sayse

答えて

0

distinct()は、クエリーセット の重複要素を排除します。

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

関連する問題