Django - Unique list from QuerySet

2020-06-07 05:29发布

问题:

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 :)

回答1:

Project.objects.values('client').distinct()

Link to Django docs on queryset distinct() method