장바구니에서 filter
검색어를 range
(으)로 실행 중입니다. 난 filter
항상 기본 키에 의해 그룹화 된 queryset을 반환 생각,하지만 그렇지 않아 보인다. 간단한 Django 필터 쿼리 : group by primary key?
이들은
내 모델입니다 :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
에 대한 결과를 얻는 것 같습니다.
누구나 ID로이 products
을 그룹화하고 첨부 된 reviews
의 개수로 주석을 달 수 있습니다.
"그룹"이라고 할 때 "정렬"을 말합니까? "그룹화"는 전혀 다른 개념입니다. –
각 리뷰가 아니라 각 제품에 대한 결과를 원합니다. 어쩌면 클라이언트 측에서이 작업을 수행해야하지만, 장고에서는 가능한지 궁금합니다. – flossfan
'.distinct()'시도 했습니까? –