일부 모델의 일일 레코드를 계산하려고하지만 몇 가지 fk 필드 = xy가있는 레코드에 대해서만 카운트가 만들어지기를 바랍니다. 그래서 새로운 레코드가 생성 된 일 0django annotate count filter
class SomeModel(models.Model):
place = models.ForeignKey(Place)
note = models.TextField()
time_added = models.DateTimeField()
이 장소 이름 = "뉴욕"과의
data = SomeModel.objects.extra({'created': "date(time_added)"}).values('created').annotate(placed_in_ny_count=Count('id'))
이 작동하지만, 모든 기록 .. 모든 장소를 보여줍니다 말 반환 할 수 있습니다.
필터링을 시도했지만 place.name="NewYork"
이 (가)없는 레코드가있는 일을 반환하지 않습니다. 그건 내가 필요로하는 것이 아니다.
필터링과 함께 코드를 표시하고 결과를 보여 주며 잘못되었다고 생각할 수 있습니까? –
@GarethRees'data = SomeModel.objects.extra ({created} : 날짜 (time_added)}}) 값 ('created') 주석 (배치 된 '_ny_count = 카운트 ('id'))'' '.filter (place = Place.objects.get (name = 'NewYork'))'를 추가하면 'place'가있는 SomeModel 레코드가 생성 된 날 만 반환되기 때문에 반환되는 횟수가 줄어 듭니다. 나는 그러한 기록이없는 날들을 돌려주고 싶다. 나는'ny_counts = Count ('id'where place = Place.objects.get (name = 'NewYork'))'와 같은 것을하고 싶고'{{placed_in_ny_count ': 23,'created ': datetime.date (2012,1,12)}, { 'placed_in_ny_count': 0, 'created': datetimedate (2012,1,13)} ...]' – Robert