http://docs.djangoproject.com/en/1.2/ref/models/querysets/#select-related and
http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#regroup
Stefano
2011/2/27 galago <progreo@gmail.com>:
> Models:
> class Technology(models.Model):
> name = models.CharField(max_length=100, unique=True)
> slug = models.SlugField(max_length=100, unique=True)
> class Site(models.Model):
> name = models.CharField(max_length=100, unique=True)
> slug = models.SlugField(max_length=100, unique=True)
> technology = models.ManyToManyField(Technology, blank=True, null=True)
> Views:
> def portfolio(request, page=1):
> sites_list =
> Site.objects.select_related('technology').only('technology__name', 'name',
> 'slug',)
> return render_to_response('portfolio.html', {'sites':sites_list,},
> context_instance=RequestContext(request))
> Template:
> {% for site in sites %}
> <div>
> {{ site.name }},
> {% for tech in site.technology.all %}
> {{ tech.name }}
> {% endfor %}
> </div>
> {% endfor %}
> But in that example each site makes 1 additional query to get technology
> list. Is there any way to make it in 1 query somehow?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment