0
我的模型看起来是这样的:Django的ORM过滤
Person(model.Models):
name = model.CharField(max_length=32)
date_added = models.DateTimeField(auto_now_add=True)
Note(model.Models):
person = model.ForeignKey(Person)
action = model.CharField(max_length=32, default='call)
date_added = models.DateTimeField(auto_now_add=True)
owner = model.ForeignKey(User)
我的观点:
def get_working_persons(self):
relevant_actions = ['call', 'meeting', ...]
query = Q(action__in=relevant_note_actions) | Q(date_added__range=[fourteen_days_ago, now])
get_current_person_notes = Note.objects.filter(query).exclude(~Q(owner=request.user)).values('owner', 'action', 'person')
这返回的音符,每个人拥有所有的笔记中列出的清单,被贴内date_added__range。如何获得该日期范围内每个人的最后一张纸条,并符合其他标准?
非常感谢。从我所能看到的情况来看,这只会返回最后一个对象。我想获得每个人的最后一个对象。 因此类似于: 'Select * from note where date_added between now和fourteen_days_ago GROUP BY'person'' –
@ 5h3z4n查看https://docs.djangoproject.com/zh/1/11/topics/db/聚合/ –
@ pawel.ad这看起来像我需要!谢谢 –