Set up the select_related data structure so that we only select certain related models (as opposed to all models, when self.select_related=True).
(self, fields)
| 2445 | self.group_by = tuple(group_by) |
| 2446 | |
| 2447 | def add_select_related(self, fields): |
| 2448 | """ |
| 2449 | Set up the select_related data structure so that we only select |
| 2450 | certain related models (as opposed to all models, when |
| 2451 | self.select_related=True). |
| 2452 | """ |
| 2453 | if isinstance(self.select_related, bool): |
| 2454 | field_dict = {} |
| 2455 | else: |
| 2456 | field_dict = self.select_related |
| 2457 | for field in fields: |
| 2458 | d = field_dict |
| 2459 | for part in field.split(LOOKUP_SEP): |
| 2460 | d = d.setdefault(part, {}) |
| 2461 | self.select_related = field_dict |
| 2462 | |
| 2463 | def add_extra(self, select, select_params, where, params, tables, order_by): |
| 2464 | """ |