Changeset 6961
- Timestamp:
- 12/19/07 07:06:45 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/queryset-refactor/django/db/models/sql/query.py
r6960 r6961 724 724 alias = self.join((None, opts.db_table, None, None)) 725 725 726 try: 727 field, target, unused, join_list = self.setup_joins(parts, opts, 728 alias, (connector == AND)) 729 except TypeError, e: 730 if len(parts) != 1 or parts[0] not in self.extra_select: 731 raise e 732 # Filtering on some alias from extra(select=...) 733 self.where.add([None, parts[0], None, lookup_type, value], 734 connector) 735 return 726 field, target, unused, join_list, = self.setup_joins(parts, opts, 727 alias, (connector == AND)) 736 728 col = target.column 737 729 alias = join_list[-1][-1] django/branches/queryset-refactor/django/db/models/sql/where.py
r6868 r6961 6 6 from django.utils import tree 7 7 from django.db import connection 8 from django.db.models.fields import Field9 8 from datastructures import EmptyResultSet 10 9 … … 104 103 format = '%s %s' 105 104 106 if field: 107 params = field.get_db_prep_lookup(lookup_type, value) 108 else: 109 params = Field().get_db_prep_lookup(lookup_type, value) 105 params = field.get_db_prep_lookup(lookup_type, value) 110 106 111 107 if lookup_type in connection.operators: django/branches/queryset-refactor/tests/regressiontests/queries/models.py
r6959 r6961 459 459 {'a': u'one', 'b': u'two'} 460 460 461 Bug #4002462 Attributes used in extra(select=...) are available for use in subsequent463 order_by() and filter() calls.464 465 461 # Order by the number of tags attached to an item. 466 462 >>> l = Item.objects.extra(select={'count': 'select count(*) from queries_item_tags where queries_item_tags.item_id = queries_item.id'}).order_by('-count') 467 463 >>> [o.count for o in l] 468 464 [2, 2, 1, 0] 469 470 # Filter those items that have exactly one tag attached.471 >>> Item.objects.extra(select={'count': 'select count(*) from queries_item_tags where queries_item_tags.item_id = queries_item.id'}).filter(count=1)472 [<Item: four>]473 465 474 466 Bug #6154
