Thanks for the suggestion. Javier's was exactly what I needed. The one question I have is why what is the purpose of ifchanged? I'm aware of the command but I don't see the purpose of it within a loop.
On Oct 20, 5:18 am, Daniel Roseman <dan...@roseman.org.uk> wrote: > On Oct 19, 9:46 pm, Ed <edmund.rog...@gmail.com> wrote: > > > > > > > Thanks for the answers. I thought that the view was already pulling > > the data. I didn't realize it gets pulled when called in the > > template. I was able to rewrite the view to provide the data more > > efficiently. > > > I have another related question on the topic of query expense. What > > is the best practice as far as database table design? > > > I have 3 tables: studio, film, images. If film has a foreign key to > > studio, and images has a foreign key to film. If I wanted to pull all > > of the images for a particular studio, it would be more expensive to > > pull: > > > all films (given studio), and then films.images_set > > > as opposed to: > > > including the studio in the image table and then pulling all images > > (given studio). > > > But there is some data replication here. Technically, I can discover > > studio by following the link from image to film to studio. But it I > > need less queries given this particular need. What is the best > > practice in a scenario like this? > > Well, as you've realised, iterating through each film to get its > images will fire off one query per film. But how to do it efficiently > depends on what you're doing with the data. If you just need all > images for one studio, and don't care about the films, then one query > will suffice: > > Image.objects.filter(film__studio=mystudio) > > If you need all studios and their related images, it's a bit more > difficult. One way of doing it would be to use the queryset `extra` > clause to add a studio ID to each image, group them by that ID, then > studios appending the image list to each one. I can post some code if > that's the sort of thing you need to do. > -- > DR. -- 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.