【发布时间】:2014-10-26 10:46:20
【问题描述】:
我有一个像下面这样的模型
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
通常当我通过以下方式完成搜索时,我会得到结果
查询
SafetyRead.objects.filter(approved=False,radiologist=False)
结果
[<SafetyRead: SafetyRead - 2983>, <SafetyRead: SafetyRead- 2582>, <SafetyRead: SafetyRead - 2583>, <SafetyRead: SafetyRead - 2522>, <SafetyRead: SafetyRead - 2522>]
从上面的查询结果可以看出,最后两条记录与accession_number字段重复,即2522
所以我想根据字段 accession_number 以相同的查询集格式过滤唯一的 SafetyRead 对象记录,如下所示(删除重复的 accession_number 2522 记录后)
[<SafetyRead: SafetyRead - 2983>, <SafetyRead: SafetyRead- 2582>, <SafetyRead: SafetyRead - 2583>, <SafetyRead: SafetyRead - 2522]
那么如何过滤呢?
【问题讨论】:
-
两条重复记录中您要保留哪一条? id 大的那个?
标签: django django-models filter django-queryset