Django

Code

Changeset 8053

Show
Ignore:
Timestamp:
07/22/08 03:23:20 (5 months ago)
Author:
mtredinnick
Message:

Fixed #7813 -- Allow pickling of Query classes that use select_related().
Based on a patch from Justin Bronn.

The test in this patch most likely breaks on Oracle. That's another issue.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/models/sql/query.py

    r8052 r8053  
    107107        """ 
    108108        obj_dict = self.__dict__.copy() 
     109        obj_dict['related_select_fields'] = [] 
     110        obj_dict['related_select_cols'] = [] 
    109111        del obj_dict['connection'] 
    110112        return obj_dict 
  • django/trunk/tests/regressiontests/queries/models.py

    r8052 r8053  
    786786>>> out = pickle.dumps(Item.objects.all()) 
    787787 
     788We should also be able to pickle things that use select_related(). The only 
     789tricky thing here is to ensure that we do the related selections properly after 
     790unpickling. 
     791>>> qs = Item.objects.select_related() 
     792>>> query = qs.query.as_sql()[0] 
     793>>> query2 = pickle.loads(pickle.dumps(qs.query)) 
     794>>> query2.as_sql()[0] == query 
     795True 
     796 
    788797Bug #7277 
    789798>>> ann1 = Annotation.objects.create(name='a1', tag=t1)