Here is a fantastic Q object extension which does a LEFT OUTER JOIN.

http://www.djangosnippets.org/snippets/257/

This will solve your problems.

    -Doug


On Jun 4, 4:11 am, Horst Gutmann <[EMAIL PROTECTED]> wrote:
> Hi everyone :-)
>
> I'm currently writing a small app that should store data for registered
> users and guests alike in one single model. So I made following model
> (simplied)
>
>    class Content(models.Model):
>       user = models.ForeignKey(User, null=True, blank=True)
>
> The problem I now face is, that Django seems not to do a LEFT OUTER JOIN
> when fetching all the instances of this model when queried with
> select_related(), which naturally results in a huge amount of queries (I
> guess on query per NOT NULL foreign key).
>
> My question now is, what options do I have to keep the query count low?
> So far I think I have following ones:
>
> (1) Query without selected related and then fill the content.user fields
> manually with a seperate WHERE IN query for the user.ids
>
> (2) Use something like Martin Fowler's NULL Object pattern and basically
> create a user with the ID 0 (or a negative integer if possible)
>
> Thank you :-)
> - Horst


--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to