Django

Code

Changeset 7786

Show
Ignore:
Timestamp:
06/29/08 06:15:48 (2 months ago)
Author:
mtredinnick
Message:

Fixed #7371 -- Fixed an edge case when ordering on related models.

Files:

Legend:

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

    r7782 r7786  
    627627        alias = joins[-1] 
    628628        col = target.column 
     629        if not field.rel: 
     630            # To avoid inadvertent trimming of a necessary alias, use the 
     631            # refcount to show that we are referencing a non-relation field on 
     632            # the model. 
     633            self.ref_alias(alias) 
    629634 
    630635        # Must use left outer joins for nullable fields. 
  • django/trunk/tests/regressiontests/queries/models.py

    r7785 r7786  
    172172    person = models.OneToOneField(Member, primary_key=True) 
    173173    parent = models.ForeignKey(Member, related_name="children") 
     174 
     175# Custom primary keys interfered with ordering in the past. 
     176class CustomPk(models.Model): 
     177    name = models.CharField(max_length=10, primary_key=True) 
     178    extra = models.CharField(max_length=10) 
     179 
     180    class Meta: 
     181        ordering = ['name', 'extra'] 
     182 
     183class Related(models.Model): 
     184    custom = models.ForeignKey(CustomPk) 
    174185 
    175186 
     
    787798[<Annotation: a1>] 
    788799 
     800Bug #7371 
     801>>> Related.objects.order_by('custom') 
     802[] 
     803 
    789804"""} 
    790805