Opened 15 years ago

Last modified 11 years ago

#10064 closed

error: annotate doesn't support select_related — at Initial Version

Reported by: olivius Owned by:
Component: Database layer (models, ORM) Version: dev
Severity: Keywords: annotate
Cc: flosch@…, elsdoerfer@… Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

models.py:[[BR]]

class Account(models.Model):
    accountname = models.CharField(max_length=20)
    account_creator = models.ForeignKey(User)
    description = models.TextField(_('description'), blank=True)
    
    def __unicode__(self):
        return self.account


class Category(models.Model):
    category_name = models.CharField(max_length=50)
    category_creator = models.ForeignKey(User)
    description = models.TextField(_('description'), blank=True)
    def __unicode__(self):
        return self.category


class Transaction(models.Model):
    category            = models.ForeignKey(Category)
    account_from        = models.ForeignKey(Account, related_name='account_from')
    account_to          = models.ForeignKey(Account, related_name='account_to')
    creator             = models.ForeignKey(User)
    label               = models.CharField(_('label'), max_length=30)
    description         = models.TextField(_('description'), blank=True)
    ammount             = models.DecimalField(_('amount'),max_digits=8, decimal_places=2)
    created_at          = models.DateTimeField(_('created at'), default=datetime.now)
    updated_at          = models.DateTimeField(_('updated at'))
    
    def __unicode__(self):
        return self.label

shell:

transactions=Transaction.objects.select_related('category','account_from','account_to').annotate(Sum('amount')).order_by('category','updated_at')

print transactions

Traceback (most recent call last):

File "<console>", line 1, in <module>
File "C:\Python25\lib\site-packages\django\db\models\query.py", line 239, in _

_getitem

return list(qs)[0]

File "C:\Python25\lib\site-packages\django\db\models\query.py", line 163, in _

_len

self._result_cache.extend(list(self._iter))

File "C:\Python25\lib\site-packages\django\db\models\query.py", line 294, in i

terator

setattr(obj, aggregate, row[i+aggregate_start])

IndexError: tuple index out of range

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top