2016-12-15 10 views
0

私のビューからクライアント側にjsonオブジェクトを返しています。Django - クエリセットの値は、同じモデルの各カテゴリに対して同じモデルを複数回返します。

したがって、できるだけ簡単なコードを保つために、ここで私は何をすべきか:

def get(self, request, *args, **kwargs): 
     inspirations = Inspiration.objects.active_translations(get_language()).filter(publish=True) 
     inspirationsFilter = inspirations.values('translations__title', 
      'translations__slug', 'categories__translations__name', 'main_image__file') 

     data = JsonResponse(list(inspirationsFilter), safe=False) 
     return HttpResponse(data, status=200, content_type='application/json') 

しかし、私はここに直面してる問題は、カテゴリのみで印刷から、これ一つであり、タイトル:

ご覧のとおり、「第3のインスピレーション」には2つのカテゴリが関連付けられているため、各カテゴリのアイテムが返されます。私が持っていると思い何

はのようなものです:私が作成した多対多のモデルフィールド

...('A third inspiration', ['category1', 'category2'])] 

カテゴリーれ、翻訳はジャンゴ-parlerから多対多です。

このように、「連結」する解決策をご存じですか?それとも私は手動で行う必要がありますか? 私はvalues_listを試しましたが、戻り値は同じです。

編集:.valuesを呼び出すまで、モデルクエリは一意です。

答えて

1

変換テーブルへの(暗黙的な)結合のために重複した行が表示されています。

This is actually noted in Parler's readme - .distinct('id')を追加してみてください。

+0

確かに、私は「第3のインスピレーション」に過ぎません。しかし、それは私がそれにリンクされているすべてのカテゴリを持っている場合、 "category2"のみを含んでいます。 –

関連する問題