###Djangoのquerysetで先に重複削除をして最新のレコードでフィルターをかけリスト表示したいです。
###例えば下記のようなデータがあり、
No 名称 仕入日時 仕入先
1 りんご 8/1 A農園,B農園
2 なし 8/2 B農園,C農園
3 ぶどう 8/3 A農園,B農園
4 りんご 8/4 A農園,C農園
###重複する名称(りんご)を最新のレコードのみにして、A農園でフィルターをかけたいです。
(仕入先はboolean型にしています)
#####理想
No 名称 仕入日時 仕入先
4 りんご 8/4 A農園,C農園
3 ぶどう 8/3 A農園,B農園
######データベースの持ち方や概念自体が悪いのかもしれませんが、現状は上記のように動作させたいと思っております。
#####現実
No 名称 仕入日時 仕入先
1 りんご 8/1 A農園,B農園
4 りんご 8/4 A農園,C農園
3 ぶどう 8/3 A農園,B農園
######過去のりんごも取得してしまいます。
###やってみたこととしては、
view
1class Purchasing(ListView): 2 model = Fruits 3 def get_queryset(self,**kwargs) 4 queryset=super().get_queryset(**kwargs) 5 queryset=queryset.filter(nouen_A = True).distinct('fruits_name') 6 #本来はrequest.GETによって農園A,農園B,農園Cとフィルタを動的にかけたいためif文で区切られ、querysetが続きます
###上記のように行いましたが、すべてのりんごを取得し表示してしまう状態です。
その他調べましたが、うまく行かないため、質問させていただきました。
そもそもの概念や作法が間違いかもしれませんが、その点も踏まえてご教示いただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/03 06:17