2
我有兩個型號Django模塊過濾器,做不同的特定的列
class Category(models.Model):
name= models.TextField(max_length=255)
parent = models.ForeignKey('self', null=True, blank=True)
class Brand(models.Model):
category = models.ForeignKey(Category)
name= models.TextField(max_length=255)
例如:
類別
name parent
------- -------
vehicle 0
car 1
motorcycle 1
truck 1
bicycle 1
fff 0
....
品牌
name category
---- ---------
BMW car
BMW truck
BMW bicycle
toyota car
mercedes car
mercedes truck
someThing fff
....
我想創建一個品牌的查詢集被車輛過濾並且名稱不同。
,所以我可以在我的模板形式,將有一個下拉過濾器與所有相關車輛類別,有沒有重複的名字
name category
---- ---------
BMW car
toyota car
mercedes truck
的品牌是否有任何選項做一個簡單的方式,還是我需要寫一個函數呢?
我看到了一個例子
Select DISTINCT individual columns in django? 但它返回一個ValuesQuerySet
,我需要一個QuerySet
,我不喜歡使用的是僅在PostgreSQL的支持().distinct('someItem')
。
可以在數據庫中爲不同類別設置相同的品牌,但如果我想按品牌過濾,用戶無需在下拉菜單中查看重複名稱 – Ron
這會加入可能導致重複的品牌和類別。一個明顯的將以略微昂貴的代價去除它們。 Category.objects.filter(brand__name__in =( 「寶馬」, 「豐田」))不同的() 您可以避免通過PK仰視的品牌並通過了加入: 品牌=品牌。 objects.filter(name__in =( 「寶馬」, 「豐田」)) Category.objects.filter(brand_id__in =品牌) –
我需要加入品牌類,因爲它們是相關的。用戶可以將項目添加到系統中,當他這樣做,他只能選擇那些與類別相關的品牌,讓我展示他有關,他是該類別中的相關品牌,他可以按品牌,類別篩選項目或類別和相關品牌 – Ron