我正在使用Django 4.0
, 和Python 3.8
.
我有一個具有modification date
,department name
和的產品designation
。
我想檢索每個產品,但是對于具有相同名稱和相同部門的產品,我只想檢索最后一個條目。
這是我現在擁有的:
products = Product.objects.all().order_by('designation')
我嘗試對結果進行排序并洗掉它對 10 行有效但對 100 行無效的重復行
對于以下資料:
專案:名稱,日期,部門
- item_1,1970 年 1 月 1 日,department_1
- item_2,01/01/1970,department_2
- item_3,01/01/1970,department_3
- item_1,01/02/1970,department_1
我想:
- item_1,01/02/1970,department_1
- item_2,01/01/1970,department_2
- item_3,01/01/1970,department_3
請問您有什么建議嗎?
編輯:部門是另一種模式,產品和部門之間的關系是多對多。
uj5u.com熱心網友回復:
如果您使用的是 PostgreSQL 資料庫,請使用distinct()
QuerySet 上的方法(鏈接到 Django 檔案)來“從查詢結果中消除重復行”。
在你的情況下:
products = Product.objects.all().order_by('designation', 'department').distinct('designation', 'department')
如果您正在使用另一個資料庫,您也可以使用distinct()
,但無需傳遞位置引數 ( *fields
)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/519825.html
標籤:Pythondjangodjango-queryset
上一篇:無法從新聞網站上抓取和制作字典