I'm pretty sure that `if vendor.approved_reviews` will call the method, which runs a query, and then discard the results after the truthiness test. I think this will happen again on `L476` and `L477`. If this is true, a template variable, or less ideally, a context variable from the view, should be used to hold this queryset. Should be easy to tell with the debug toolbar. Also, it may speed this up to use `.exists()` on the queryset instead of a truthiness test on the queryset. It's unclear though, because if the truthiness test pulls the query into memory and then the forloop loops over the query in already in memory, that's one trip to the database, where `exists` and then `for`