我只是想知道,我有以下两个伪相关查询:
organisation = Organisation.objects.get(pk=org_id)
employees = Employee.objects.filter(organisation=organisation).filter(is_active=True)
每个Employee
都有一个 ForeignKey 关系Organisation
。
我想知道在本地 Django ORM 的一个查询中是否可以利用任何东西来执行上述操作?
此外,将:
employees = Employee.objects.filter(organisation__id=organisation.id).filter(is_active=True)
是一种更快的获取方式employees
吗?
对于威廉的参考,employees
然后用作:
# Before constructing **parameters, it is neccessary to filter out any supurfluous key, value pair that do not correspond to model attributes:
if len(request.GET.getlist('gender[]')) > 0:
parameters['gender__in'] = request.GET.getlist('gender[]')
employees = employees.filter(**parameters)
if len(request.GET.getlist('age_group[]')) > 0:
parameters['age_group__in'] = request.GET.getlist('age_group[]')
employees = employees.filter(**parameters)
results = SurveyResult.objects.filter(
user__in=employees,
created_date__range=date_range,
).annotate(
date=TruncDate('created_date'),
).values(
'survey',
'date',
).annotate(
score=Sum('normalized_score'),
participants=Count('user'),
).order_by(
'survey',
'date',
)
我省略了这一点,因为这似乎对我最初的目标来说是不必要的复杂化。