On Tuesday, 17 April 2012 07:10:35 UTC+1, LJ wrote: > > I am having trouble figuring out how to query the database and return > the results in a format that my template can render appropriately. > I have a model that has a ManyToMany field: > > class Student() > ... > parents = models.ManyToManyField('parents.Parent', blank=True, > null=True) > ... > The Parent model looks like: > > class Parent() > ... > first_name models.CharField(max_length=30) > last_name models.CharField(max_length=30) > gender models.CharField(max_length=1) > ... > def __unicode__(self): > return u'Parent : %s %s' % (self.first_name, self.last_name) > > The method in my view currently looks something like this: > > def get_parents( request, template ) > id=request.GET['id'] > template_data["parents"] = Parent.objects.filter(student=id) > return render_to_response( template, template_data, > context_instance=RequestContext(request)) > > The template data is returning the data in the format: > [ <Parent: Parent: Bob Thomas>, <Parent: Parent: Mary Thomas>] > > Instead, I need the template data formatted with the other fields in > my Parent model, like: > [ <Parent: { id: 3, first_name: Bob, last_name: Thomas}>, > <Parent: { id: 4, first_name: Mary, last_name: Thomas}> ] > > The format doesn't have to be exactly like the above, but I need to > include the index, and to return some of the other fields defined in > my Parent model. > My template will look something like: > {% for parent in parents.object_list %} > <tr> > <td>{{parent.id}}</td> > <td>{{parent.first_name}}</td> > <td>{{parent.last_name}}</td> > {% endfor %} > > Can someone give me some ideas about how I can change my view to > return my template data in a more useable format?
This has nothing to do with your view, which is fine. The query isn't returning the data like that - you're just showing a string representation of the queryset, created by calling `repr()` (which calls `unicode()`) on each parent. The objects are there in full. Your proposed template code is correct, except that you should iterate through just `parents`, not "parents.object_list". -- DR. -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/ocAvS-nMvHcJ. To post to this group, send email to django-users@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.