Joseph Mosby
@josephmosby
note: we use scheduled because it helps us adhere to the social contract we have with our organization.
# Bad
def lots_of_queries(self):
members = Members.objects.filter(committee='Ways and Means')
for member in members:
# this is a new DB query
# each iteration
chief_of_staff = member.chief_of_staff
print(chief_of_staff.name)
return members
# Good
def few_queries(self):
members = Members.objects.filter(committee='Ways and Means')
# yay
members = members.select_related('chief_of_staff')
for member in members:
chief_of_staff = member.chief_of_staff
print(chief_of_staff.name)
/
#