Tuesday, August 31, 2010

Re: Query overhead or not ?

Thanks for your advise. I'm short of time right now so I briefly looked at django's aggregation possibilities.
I'll look into them more deeply tonight.

But I stumbled upon a problem.

Post.objects.values('tags')

Gives me:

FieldError: Invalid field name: 'tags'

In [56]: Post.tags
Post.tags

In [56]: Post.tags
Out[56]: <django.db.models.fields.related.ReverseManyRelatedObjectsDescriptor object at 0x78f9f0>

Post.tags does exist. Maybe it's because it's a ManyToManyField ? So I tried Post.objects.values('tags__name'). Still got an error ?

I'm wondering why ?

Op 31-aug-2010, om 09:28 heeft Jirka Vejrazka het volgende geschreven:

>> tags = Tag.objects.all()
>>
>> for t in tags:
>> indexed_tags[t] = Post.objects.filter(tags__name=t).count()
>>
>> Next I would sort indexed_tags and I have a dictionary of which tags are used the most.
>>
>> I'm wondering if this is a good idea ? Since if I have 1000 tags this would require 1000 queries just for one simple tag cloud.
>> Is there a better way of solving this without adding an extra count field to the Tag model.
>
> Hi Jonas,
>
> your gut feeling was correct - it's not a very good idea, although
> it might work for a small site. You might want to take a look at
> database aggregation in Django:
> http://docs.djangoproject.com/en/1.2/topics/db/aggregation/
>
> Cheers
>
> Jirka
>
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
>

Met vriendelijke groeten,

Jonas Geiregat
jonas@geiregat.org


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment