I'm having some trouble constructing a filter that's intended to work across multiple tables with selected fields. Here's a simplified outline of my models:
class System(models.Model): name = models.CharField(max_length=16) domain = models.CharField(max_length=255, default='example.com') class RaidStorage(models.Model): in_system = models.ForeignKey(System) name = models.CharField(max_length=25) class RaidArray(models.Model): in_storage = models.ForeignKey(RaidStorage) name = models.CharField(max_length=25) class RaidPhysicalDrive(models.Model): in_array = models.ForeignKey(RaidArray) name = models.CharField(max_length=25) size = models.IntegerField(null=True, blank=True) serial = models.CharField(max_length=25) model = models.CharField(max_length=25) Now, given a system id, I want to list all the physical drives from it along with info from the related tables. I would like something like select System.name, RaidStorage.name, RaidArray.name, RaidPhysicalDrive.name, RaidPhysicalDrive.serial, RaidPhysicalDrive.model from System, RaidStorage, RaidArray, RaidPhysicalDrive where RaidPhysicalDrive.in_array=RaidAarray.id and RaidArray.in_storaage = RaidStorage.id and RaidStorage.in_system=id (etc) I'm having a good deal of trouble coming up with the filters for this. I'm thinking that .values() and possibly .select_related() are key here, but so far I've failed at putting together anything that gives me the results I want (a list of physical drives associated with the selected system). The filter examples through the tutorials and such seem to all assume select *, and there's very little on dealing with grouping selective fields from multiple tables that I've found. Part of the issue might be in the template as well; If I cheat and send it the correct list, I can't access part of the information I want: {% for pd in pd_list %} <tr> <td>{{ pd.in_array_id.storage.in_system.name }}</td> <td>{{ pd.in_array_id.in_storage.name }}</td> <td>{{ pd.in_array_id.name }}</td> <td>{{ pd.name }}</td> <td>{{ pd.serial }}</td> <td>{{ pd.model }}</td> </tr> {% endfor %} results in the first three columns of the table being empty... templates don't seem to "follow" back the way they do in views.py, etc. So I'm sure I need to create a dictionary or list from the original views.py def to pass to the template but as I say, I'm not sure of how to use .values or .select_related (or whatever else item I'm overlooking). I did search through the group a bit, but didn't find anything directly helpful. Thanks! --Cindy -- 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.