Django

Code

Changeset 7494

Show
Ignore:
Timestamp:
04/28/08 02:07:17 (3 months ago)
Author:
mtredinnick
Message:

Allow Query objects to be values in query filters. This already existed for
relations, but not for normal fields. The latter comes up naturally in some
update statements.

Refs #7095

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/models/fields/__init__.py

    r7477 r7494  
    1010from django.db import get_creation_module 
    1111from django.db.models import signals 
     12from django.db.models.query_utils import QueryWrapper 
    1213from django.dispatch import dispatcher 
    1314from django.conf import settings 
     
    227228    def get_db_prep_lookup(self, lookup_type, value): 
    228229        "Returns field's value prepared for database lookup." 
     230        if hasattr(value, 'as_sql'): 
     231            sql, params = value.as_sql() 
     232            return QueryWrapper(('(%s)' % sql), params) 
    229233        if lookup_type in ('exact', 'regex', 'iregex', 'gt', 'gte', 'lt', 'lte', 'month', 'day', 'search'): 
    230234            return [value]