It's not really a matter of "working around" it. Your .xxx method/ property is an attribute of the object. What you evidently want from the database is *not* a list of those objects, but rather a summary representation of them. Trying to apply your .xxx is meaningless as you don't have a discrete object to apply it to. If it *is* supposed to be meaningful in that context, then it's probably the sort of thing that belongs in a manager.
If you can tell us a bit more about what .xxx actually is, or is supposed to do, then we might be able to come up with an alternate solution. Regards Scott On Jun 10, 5:42 pm, SlafS <[email protected]> wrote: > Yes, I'm aware of the background of the problem but i was wondering if > I can somehow "workaround" it. > > Thanks for Your help > > On 10 Cze, 23:34, Dan Harris <[email protected]> wrote: > > > > > The problem is the GROUP BY you are looking to get. The problem with > > doing a group by you don't get the whole object which is what the > > Django queryset is trying to return: > > > res = queryset.annotate(Count("name")) > > > This will give you a result set that you want and you can iterate over > > like: > > > {% for r in res %} > > {{ r.name }} - {{ r.name__count}} > > {% endfor %} > > > however there may be duplicated {{ r.name }} > > > Dan Harris > > [email protected] > > > On Jun 10, 5:24 pm, SlafS <[email protected]> wrote: > > > > Thanks. > > > > I've already tried that but this isn't quite what i'm looking for. As > > > u wrote this returns a list, but I would like to obtain my calculated > > > property when I'm iterating over this. Like so (let's say the result > > > is in res variable) : > > > > {% for r in res %} > > > {{r.xxx}} - {{r.name__count}} > > > {% endfor %} > > > > I'm starting to think that there's no such nice way to acheive that :/ > > > > On 10 Cze, 23:06, Dan Harris <[email protected]> wrote: > > > > > Here is an example: > > > > > # In models.py > > > > class TestModel(models.Model): > > > > name = models.CharField() > > > > > # Get a listing of unique names and their counts > > > > # In some view > > > > from django.db.models import Count > > > > > TestModel.objects.values("name").annotate(Count("name")) > > > > > This will return a list of the form: > > > > > [{'name__count': 2, 'name': u'aaaa'}, {'name__count': 1, 'name': > > > > u'bbbbbbb'}] > > > > > Hope this helps! > > > > > Dan Harris > > > > [email protected] > > > > > On Jun 10, 5:01 pm, SlafS <[email protected]> wrote: > > > > > > Hi there! > > > > > I have a question. If i have a model with some fields (let's say all > > > > > CharFields named aaa,bbb,ccc etc. and some calculated properties named > > > > > xxx and zzz) how can I obtain something similar to > > > > > > "SELECT aaa, count(aaa) FROM my_model_table GROUP BY aaa;" > > > > > i.e. a list of - lazy loaded - objects with distinct aaa values and an > > > > > extra column which indicates how many entries of a specific aaa are in > > > > > the table. > > > > > > I would like to acheive that with QuerySet and annotate so that I can > > > > > get a list of objects to use their other properties (xxx or zzz) e.g. > > > > > in my template > > > > > > Regards -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

