0
我正在使用Django 1.3,並希望使用'group by'類查詢來獲取對象數組。下面是一些簡單的代碼:在Django 1.3中獲取一個groupped_by對象列表
class Product(models.Model):
id = models.IntegerField(primary_key=True)
active = models.BooleanField()
name = models.CharField(blank=True, max_length=500)
slug = models.SlugField(blank=True, max_length=500)
program = models.CharField(blank=True, max_length=500)
number = models.CharField(blank=True, max_length=500)
image = ...
url = ...
殼
:
>>> p = Product.objects.all().some_group_functions('slug')
>>> p
[<Product: Abelly Hat>, <Product: Abelt Bracelet>, <Product: Abigail Earrings>, <Product: Abigail Earrings>'...(remaining elements truncated)...']
如何讓只有在我的變量p的獨特塞的對象?
有什麼方法可以將產品對象作爲列表嗎?
編輯:可能的解決方法 雖然它做什麼,我想要它做的,請讓我知道,如果你有什麼更好的解決方案:
在我看來,邏輯得到一個對象的QuerySet:
products = Product.objects.filter(*whatever filter you like*)
products = remove_duplicates(products, 'slug')
而且remove_duplicates功能
def remove_duplicates(seq, attr=None):
seen = {}
result = []
for item in seq:
if attr:
tmpattr = getattr(item, attr)
else:
tmpattr = item
if tmpattr in seen: continue
seen[tmpattr] = 1
result.append(item)
return result
你是指什麼對象w /獨特的slu??它是否排除共享slu objects的對象? – okm
我有對象具有相同的slu it,它應該只返回獨特的slu gs ,所以返回的對象列表應該只包含具有獨特的slu objects的對象。我剛剛找到了一種解決方法,現在將其發佈 – Hussam