@James Brewer:
If I change my code, I can have this user_ids list.
btw, it's filter and not get if you're searching multiple objects (the
user_ids).

@Alejandro Varas G.:
That doesn't change the fact that 'User.objects.get(id=X)' will hit the
database everytime.

Right now, the problem is solved, by creating the AllUserSet, but I think my
code is pretty ugly, and it seems strange to me that the ORM can't handle that
built-in, by caching the .all() or .filter(id__in=users_ids)

The ideally solution would be something like:

    AllUser = User.objects.all()

    for i in user_id:
        AllUser.get(id=i)

But this code hits the database every time the 'get' is called.


On 26/09/14 12:36, James Brewer wrote:
> Do you have a single list of the IDs you want? If so, you can do something
> like `User.objects.get(id__in=user_ids)`. This will fetch all Users whose
> `id` is in some list `user_ids`.
> 
> Does that help?
> 
> Happy hacking!
> 
> James
> 
> On Fri, Sep 26, 2014 at 11:43 AM, Alejandro Varas G. <[email protected]>
> wrote:
> 
> > Hi,
> >
> > You should use User.objects.get(id=X)
> >
> > Best
> > El 26/09/2014 15:28, "aRkadeFR" <[email protected]> escribió:
> >
> > >
> > > Hey!
> > >
> > > I'm having a hard time trying to reduce the number of SQL queries on a
> > view.
> > >
> > > Basically, I'm fetching all my User, with User.objects.all(), and save
> > this
> > > queryset as AllUser.
> > >
> > > Then every time I need to get the user with the id = X , I'm calling a
> > function
> > > 'get_user_from_id', that iterate over the AllUser queryset variable, and
> > when
> > > it finds the id, returns it.
> > >
> > > I considerably reduced the number of SQL queries, but I would like to
> > know if
> > > you think of a better way?
> > >
> > > Thank you
> > >
> > > --
> > > You received this message because you are subscribed to the Google
> > Groups "Django users" group.
> > > To unsubscribe from this group and stop receiving emails from it, send
> > an email to [email protected].
> > > To post to this group, send email to [email protected].
> > > Visit this group at http://groups.google.com/group/django-users.
> > > To view this discussion on the web visit
> > https://groups.google.com/d/msgid/django-users/20140926182939.GA26744%40rkade-thinkpad
> > .
> > > For more options, visit https://groups.google.com/d/optout.
> >
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to [email protected].
> > To post to this group, send email to [email protected].
> > Visit this group at http://groups.google.com/group/django-users.
> > To view this discussion on the web visit
> > https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com
> > <https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> > .
> >
> > For more options, visit https://groups.google.com/d/optout.
> >
> 
> 
> 
> -- 
> James Brewer
> jamesbrewer.io
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/django-users/CAKj8pVpqBgpFDQ0BruHXLWe2q1CRURMEejokhMKpD5bfs9hGGA%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/20140927130809.GA3104%40rkade-thinkpad.
For more options, visit https://groups.google.com/d/optout.

Reply via email to