Django - Unique list from QuerySet

Hanpan picture Hanpan · Apr 20, 2011 · Viewed 29.3k times · Source

I have a filtered QuerySet which has a ManyToMany field 'Client'. I want to create a unique dict of all the Client objects in the query set so:

Projects Queryset:
- Project1.client = <Client: 1>
- Project2.client = <Client: 1>
- Project3.client = <Client: 2>
- Project4.client = <Client: 2>
- Project5.client = <Client: 3>

class Project(models.Model):
    client = models.ForeignKey(Client, blank=True, null=True)

I want to end up with a dict of client objects:

{<Client: 1>,<Client: 2>,<Client: 3>}

Some help would be appreciated :)

Answer

Yuval Adam picture Yuval Adam · Apr 20, 2011
Project.objects.values('client').distinct()

Link to Django docs on queryset distinct() method