我有这个模型: class Visit(models.Model): timestamp = models.DateTimeField(editable=False) ip_address = models.IPAddressField(editable=False) 如果用户在一天内访问多次, 如何根据ip字段筛选唯一的行? (我想要今天的独特访问) today = datetime.datetime.today() yesterday = datetime.datetime.today() – datetime.timedelta(days=1) visits = Visit.objects.filter(timestamp__range=(yesterday, today)) #.something? 编辑: 我看到我可以使用: Visit.objects.filter(timestamp__range=(yesterday, today)).values('ip_address') 得到只有ip字段的ValuesQuerySet。 现在我的QuerySet看起来像这样: [{'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}, {'ip_address': u'127.0.0.1'}] 如何过滤这个唯一性没有评估QuerySet和采取数据库命中? # Hope it's something like this… values.distinct().count()
我对Hibernate来说很新。 我发现我们可以用以下两种不同的方法得到不同的结果。 有谁能告诉我他们之间有什么区别? 何时使用其他的? Projections.distinct(Projections.property("id")); VS criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
所以我有一个对象的集合。 确切的types并不重要。 从中我想提取一对特定属性的所有唯一对,因此: myObjectCollection.Select(item=>new { Alpha = item.propOne, Bravo = item.propTwo } ).Distinct(); 所以我的问题是:在这种情况下,将不同的使用默认对象等于(这将是无用的,因为每个对象是新的),或可以告诉做一个不同的等于(在这种情况下,相等值的阿尔法和布拉沃=>等于实例)? 有什么办法可以达到这个效果吗?
我的表是: id home datetime player resource —|—–|————|——–|——— 1 | 10 | 04/03/2009 | john | 399 2 | 11 | 04/03/2009 | juliet | 244 5 | 12 | 04/03/2009 | borat | 555 3 | 10 | 03/03/2009 | john | 300 4 | 11 | 03/03/2009 | juliet | 200 6 | 12 […]