Uhh, you are right... it does work!

I though I was writing a pseudo code (without testing that my pseudo
code indeed worked already)... Sometimes Django is intuitive to extent
it guesses what I wanted!

Though foreignkey documentation did not include information that I can
access the raw ID like "host_id".

And BTW I ended up using dict to cache the ID's myself too.

On 12 heinä, 15:21, Daniel Roseman <dan...@roseman.org.uk> wrote:
> On Jul 12, 11:29 am, Jari Pennanen <jari.penna...@gmail.com> wrote:
>
>
>
>
>
> > Hi!
>
> > Is it possible to access the foreignkey ID value of model? I do not
> > want Django ORM to try to make query because it fails in this case. I
> > have exact same problem 
> > ashttp://groups.google.com/group/django-users/browse_thread/thread/d24f...
> > (though I'm not using admin, I have list view of my own)
>
> > I will use the same example:
>
> > Host
> >     name = CharField
> > Account
> >     name = CharField
> >     host = ForeignKey(Host, related_name='accounts')
>
> > I have list of "Host" where I need to also list on each item a list of
> > accounts. Now if I could access the raw "Account.host" foreignkey ID I
> > could do this in two queries:
>
> > hosts = list(Host.objects.all())
> > accounts = list(Account.objects.filter(host__in=hosts))
>
> > for h in hosts:
> >   h.account_list = [a for a in accounts if a.host_id == h.id] #
> > NOTICE: THIS is not possible! I cannot access the foreignkey host_id :
> > (
>
> Why not? What happens? This is the correct way to access the foreign
> key ID.
>
> Note that if you get this working, you'll be iterating through all the
> selected accounts each time, for every Host. If you've got large
> numbers of accounts, there is a slightly more efficient way of doing
> this, by using dictionaries to pre-group the accounts by their
> matching hosts: see my blog[1] for an explanation.
> --
> DR.
>
> [1]:http://blog.roseman.org.uk/2010/01/11/django-patterns-part-2-efficien...

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

Reply via email to