Possible fix to PYTHON-785
This commit is contained in:
		| @@ -941,6 +941,8 @@ class AbstractQuerySet(object): | |||||||
|                 "Can't resolve fields {0} in {1}".format( |                 "Can't resolve fields {0} in {1}".format( | ||||||
|                     ', '.join(missing_fields), self.model.__name__)) |                     ', '.join(missing_fields), self.model.__name__)) | ||||||
|  |  | ||||||
|  |         fields = [self.model._columns[field].db_field_name for field in fields] | ||||||
|  |  | ||||||
|         if action == 'defer': |         if action == 'defer': | ||||||
|             clone._defer_fields.update(fields) |             clone._defer_fields.update(fields) | ||||||
|         elif action == 'only': |         elif action == 'only': | ||||||
| @@ -1068,18 +1070,18 @@ class ModelQuerySet(AbstractQuerySet): | |||||||
|  |  | ||||||
|     def _select_fields(self): |     def _select_fields(self): | ||||||
|         if self._defer_fields or self._only_fields: |         if self._defer_fields or self._only_fields: | ||||||
|             fields = self.model._columns.keys() |             fields = [columns.db_field_name for columns in self.model._columns.values()] | ||||||
|             if self._defer_fields: |             if self._defer_fields: | ||||||
|                 fields = [f for f in fields if f not in self._defer_fields] |                 fields = [f for f in fields if f not in self._defer_fields] | ||||||
|                 # select the partition keys if all model fields are set defer |                 # select the partition keys if all model fields are set defer | ||||||
|                 if not fields: |                 if not fields: | ||||||
|                     fields = self.model._partition_keys |                     fields = [columns.db_field_name for columns in self.model._partition_keys.values()] | ||||||
|             if self._only_fields: |             if self._only_fields: | ||||||
|                 fields = [f for f in fields if f in self._only_fields] |                 fields = [f for f in fields if f in self._only_fields] | ||||||
|             if not fields: |             if not fields: | ||||||
|                 raise QueryException('No fields in select query. Only fields: "{0}", defer fields: "{1}"'.format( |                 raise QueryException('No fields in select query. Only fields: "{0}", defer fields: "{1}"'.format( | ||||||
|                     ','.join(self._only_fields), ','.join(self._defer_fields))) |                     ','.join(self._only_fields), ','.join(self._defer_fields))) | ||||||
|             return [self.model._columns[f].db_field_name for f in fields] |             return fields | ||||||
|         return super(ModelQuerySet, self)._select_fields() |         return super(ModelQuerySet, self)._select_fields() | ||||||
|  |  | ||||||
|     def _get_result_constructor(self): |     def _get_result_constructor(self): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 bjmb
					bjmb