1
我在Django用range
運行filter
查詢。我認爲filter
總是返回一個按主鍵組成的查詢集,但似乎沒有。簡單的Django過濾器查詢:按主鍵組?
這是我的模型:
class MCode(models.Model):
code = models.CharField(max_length=16)
class Product(models.Model):
id = models.CharField(max_length=40, primary_key=True, db_index=True)
mcode = models.ForeignKey(MCode, null=True, blank=True, db_index=True)
class Review(models.Model):
review_id = models.CharField(max_length=32, primary_key=True, db_index=True)
product = models.ForeignKey(Product, db_index=True)
rating = models.IntegerField()
time = models.DateTimeField(db_index=True)
這是我的代碼:
mcode = 'M83'
base = Product.objects
tcode_obj = MCode.objects.filter(code=mcode.upper())
return base.filter(tcode=tcode_obj,
review__time__range=[date_from, date_to])
我得到五個結果,但他們三個人都具有相同的主鍵。它看起來像我得到每個review
的結果,而不是每個product
。
有誰知道我怎麼可以用ID將這些products
分組,並用附加的reviews
的計數進行標註?
當你說「羣」,你的意思是「排序」? 「Group by」是一個完全不同的概念。 – 2012-07-23 16:09:43
我只是想要每個產品的結果,而不是每個評論。也許我應該在客戶端做到這一點,但我想知道是否可以用Django。 – flossfan 2012-07-23 16:10:25
試過'.distinct()'? – 2012-07-23 16:17:15