Shiva Krishna Bavandla
Shiva Krishna Bavandla

Reputation: 26768

Filter the unique records in queryset based on a model field in django

I have a model like below

class SafetyRead(models.Model):
    name = models.CharField(max_length=256)
    accession_number =  models.CharField(max_length=256)
    data = models.CharField(max_length=256)
    approved = models.BooleanField()
    radiologist = models.BooleanField() 

    def __unicode__(self):
        return 'SafetyRead - %s'%self.accession_number

Usually when i had done the search in the below way i got results

query

SafetyRead.objects.filter(approved=False,radiologist=False)

Result

[<SafetyRead: SafetyRead - 2983>, <SafetyRead: SafetyRead- 2582>, <SafetyRead: SafetyRead - 2583>, <SafetyRead: SafetyRead - 2522>, <SafetyRead: SafetyRead - 2522>]

As you can observe from the above query result the last two records are duplicated with field accession_number i.e., 2522

So i want to filter the unique SafetyRead object records according to field accession_number in the same queryset format like below(after removing duplicate accession_number 2522 record)

[<SafetyRead: SafetyRead - 2983>, <SafetyRead: SafetyRead- 2582>, <SafetyRead: SafetyRead - 2583>, <SafetyRead: SafetyRead - 2522]

So how to filter it ?

Upvotes: 0

Views: 1012

Answers (1)

crhodes
crhodes

Reputation: 1188

I believe you're looking for distinct

try:

SafetyRead.objects.filter(approved=False,radiologist=False).distinct()

Upvotes: 1

Related Questions