Best way to use a 'all' QuerySet as a dict with id first

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Best way to use a 'all' QuerySet as a dict with id first

aRkadeFR
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 [hidden email].
To post to this group, send email to [hidden email].
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.
Reply | Threaded
Open this post in threaded view
|

Re: Best way to use a 'all' QuerySet as a dict with id first

alejandro varas

Hi,

You should use User.objects.get(id=X)

Best
El 26/09/2014 15:28, "aRkadeFR" <[hidden email]> 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 [hidden email].
> To post to this group, send email to [hidden email].
> 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 [hidden email].
To post to this group, send email to [hidden email].
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.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Best way to use a 'all' QuerySet as a dict with id first

James Brewer
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. <[hidden email]> wrote:

Hi,

You should use User.objects.get(id=X)

Best
El 26/09/2014 15:28, "aRkadeFR" <[hidden email]> 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 [hidden email].
> To post to this group, send email to [hidden email].
> 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 [hidden email].
To post to this group, send email to [hidden email].
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.

For more options, visit https://groups.google.com/d/optout.



--
James Brewer

--
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 [hidden email].
To post to this group, send email to [hidden email].
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.
Reply | Threaded
Open this post in threaded view
|

Re: Best way to use a 'all' QuerySet as a dict with id first

aRkadeFR
@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. <[hidden email]>
> wrote:
>
> > Hi,
> >
> > You should use User.objects.get(id=X)
> >
> > Best
> > El 26/09/2014 15:28, "aRkadeFR" <[hidden email]> 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 [hidden email].
> > > To post to this group, send email to [hidden email].
> > > 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 [hidden email].
> > To post to this group, send email to [hidden email].
> > 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 [hidden email].
> To post to this group, send email to [hidden email].
> 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 [hidden email].
To post to this group, send email to [hidden email].
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 | Threaded
Open this post in threaded view
|

Re: Best way to use a 'all' QuerySet as a dict with id first

tkdchen


On Saturday, September 27, 2014 9:06:58 PM UTC+8, aRkadeFR wrote:
@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)


Django actually caches all objects fetched when it evaluates .all or .filter method. The problem you are facing is that how to reuse the cached objects efficiently to avoid hitting database with unnecessary SQL queries. James gave you a good solution. Based on his solution, you don't need to call the `get' method each time getting user by id. Just iterate users object and find the right one by comparing id.


 
The ideally solution would be something like:

    AllUser = User.objects.all()

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


This piece of code would be changed to

AllUser = User.objects.all()
for i in user_id:
    for user in AllUser:
        if user.pk == i:
            print 'find the user'

or, even you may construct AllUser to dict to simplify the search

AllUser = dict((user.pk, user) for user in User.objects.all()) # Here, hit db, only once
for i in user_id:
    user = AllUser.get(i, None) # search by id in memory
    if user is not None:
        print 'find the user'

Hope, this could help you. 

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. <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">alej0...@...>
> wrote:
>
> > Hi,
> >
> > You should use User.objects.get(id=X)
> >
> > Best
> > El 26/09/2014 15:28, "aRkadeFR" <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">con...@...> 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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">django-users...@googlegroups.com.
> > > To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">django...@....
> > > Visit this group at <a href="http://groups.google.com/group/django-users" target="_blank" onmousedown="this.href='http://groups.google.com/group/django-users';return true;" onclick="this.href='http://groups.google.com/group/django-users';return true;">http://groups.google.com/group/django-users.
> > > To view this discussion on the web visit
> > <a href="https://groups.google.com/d/msgid/django-users/20140926182939.GA26744%40rkade-thinkpad" target="_blank" onmousedown="this.href='https://groups.google.com/d/msgid/django-users/20140926182939.GA26744%40rkade-thinkpad';return true;" onclick="this.href='https://groups.google.com/d/msgid/django-users/20140926182939.GA26744%40rkade-thinkpad';return true;">https://groups.google.com/d/msgid/django-users/20140926182939.GA26744%40rkade-thinkpad
> > .
> > > For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">django-users...@googlegroups.com.
> > To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">django...@....
> > Visit this group at <a href="http://groups.google.com/group/django-users" target="_blank" onmousedown="this.href='http://groups.google.com/group/django-users';return true;" onclick="this.href='http://groups.google.com/group/django-users';return true;">http://groups.google.com/group/django-users.
> > To view this discussion on the web visit
> > <a href="https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com" target="_blank" onmousedown="this.href='https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com';return true;" onclick="this.href='https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com';return true;">https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com
> > <<a href="https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com?utm_medium=email&amp;utm_source=footer" target="_blank" onmousedown="this.href='https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com?utm_medium\75email\46utm_source\75footer';return true;" onclick="this.href='https://groups.google.com/d/msgid/django-users/CAL60nj%2BBtqs9CXu8drOiWPoJ7aUkAKjLqXKCxmR_TMTeOOH%3DGw%40mail.gmail.com?utm_medium\75email\46utm_source\75footer';return true;">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 <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.
> >
>
>
>
> --
> James Brewer
> <a href="http://jamesbrewer.io" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fjamesbrewer.io\46sa\75D\46sntz\0751\46usg\75AFQjCNHPCwY42sOdmg7gAJy9LGm-7KqoBQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fjamesbrewer.io\46sa\75D\46sntz\0751\46usg\75AFQjCNHPCwY42sOdmg7gAJy9LGm-7KqoBQ';return true;">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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">django-users...@googlegroups.com.
> To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="56szXTkgyPEJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">django...@....
> Visit this group at <a href="http://groups.google.com/group/django-users" target="_blank" onmousedown="this.href='http://groups.google.com/group/django-users';return true;" onclick="this.href='http://groups.google.com/group/django-users';return true;">http://groups.google.com/group/django-users.
> To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/django-users/CAKj8pVpqBgpFDQ0BruHXLWe2q1CRURMEejokhMKpD5bfs9hGGA%40mail.gmail.com" target="_blank" onmousedown="this.href='https://groups.google.com/d/msgid/django-users/CAKj8pVpqBgpFDQ0BruHXLWe2q1CRURMEejokhMKpD5bfs9hGGA%40mail.gmail.com';return true;" onclick="this.href='https://groups.google.com/d/msgid/django-users/CAKj8pVpqBgpFDQ0BruHXLWe2q1CRURMEejokhMKpD5bfs9hGGA%40mail.gmail.com';return true;">https://groups.google.com/d/msgid/django-users/CAKj8pVpqBgpFDQ0BruHXLWe2q1CRURMEejokhMKpD5bfs9hGGA%40mail.gmail.com.
> For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">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 [hidden email].
To post to this group, send email to [hidden email].
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/2d9a29de-9326-4ddc-a716-df9383b2aa32%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Best way to use a 'all' QuerySet as a dict with id first

aRkadeFR
Thanks for the answer, I just wondered if there was a built-in solution in
Django.

On 27/09/14 06:01, tkdchen wrote:

>
>
> On Saturday, September 27, 2014 9:06:58 PM UTC+8, aRkadeFR wrote:
> >
> > @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)
> >
> >
> Django actually caches all objects fetched when it evaluates .all or
> .filter method. The problem you are facing is that how to reuse the cached
> objects efficiently to avoid hitting database with unnecessary SQL queries.
> James gave you a good solution. Based on his solution, you don't need to
> call the `get' method each time getting user by id. Just iterate users
> object and find the right one by comparing id.
>
>
>  
>
> > The ideally solution would be something like:
> >
> >     AllUser = User.objects.all()
> >
> >     for i in user_id:
> >         AllUser.get(id=i)
> >
> >
> This piece of code would be changed to
>
> AllUser = User.objects.all()
> for i in user_id:
>     for user in AllUser:
>         if user.pk == i:
>             print 'find the user'
>
> or, even you may construct AllUser to dict to simplify the search
>
> AllUser = dict((user.pk, user) for user in User.objects.all()) # Here, hit
> db, only once
> for i in user_id:
>     user = AllUser.get(i, None) # search by id in memory
>     if user is not None:
>         print 'find the user'
>
> Hope, this could help you.
>
> 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. <[hidden email]
> > <javascript:>>
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > You should use User.objects.get(id=X)
> > > >
> > > > Best
> > > > El 26/09/2014 15:28, "aRkadeFR" <[hidden email] <javascript:>>
> > 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 [hidden email] <javascript:>.
> > > > > To post to this group, send email to [hidden email]
> > <javascript:>.
> > > > > 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 [hidden email] <javascript:>.
> > > > To post to this group, send email to [hidden email]
> > <javascript:>.
> > > > 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 [hidden email] <javascript:>.
> > > To post to this group, send email to [hidden email]
> > <javascript:>.
> > > 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 [hidden email].
> To post to this group, send email to [hidden email].
> 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/2d9a29de-9326-4ddc-a716-df9383b2aa32%40googlegroups.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 [hidden email].
To post to this group, send email to [hidden email].
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/20140928205119.GA22961%40rkade-thinkpad.
For more options, visit https://groups.google.com/d/optout.