Django / Postgres:从DISTINCT ON套装中选择

时间:2017-05-07 21:01:27

标签: django postgresql django-models distinct django-orm

我有这些模特:

class Product(Model):
    ...

class Scanning(Model):
    product = ForeignKey(..)
    datetime = DateTimeField(...)
    ...

我正在尝试针对每个产品进行一次扫描,其中扫描是来自product.scanning.all()设置的最新产品。

s1 = (product1,01.01.1000)
s2 = (product2,01.01.1200)
s3 = (product1,01.01.1900)
s4 = (product2,01.01.1988)
s5 = (product3,01.01.2015)
s6 = (product3,01.01.1970)

会返回<s4,s3,s5>

Scanning.objects.filter(product__user=u,product__active=True).distinct('product_id').order_by('datetime')

引发异常:

  

ProgrammingError:SELECT DISTINCT ON表达式必须与initial匹配   ORDER BY表达式LINE 1:SELECT DISTINCT ON   (“productapp_scanning”。“product_id”)“亲......                               ^

如何让它发挥作用?

1 个答案:

答案 0 :(得分:1)

使用postgres,你不能在某个字段上<View style={{flex: 1}}> <View style={{height: 200, backgroundColor: 'grey'}}></View> <View style={{flexGrow: 1, backgroundColor: 'black', alignItems: 'center'}}> <Image source={require('./icon.png')} style={{ position: 'absolute', top: -40, height: 80, width: 80}} /> </View> </View> ,除非它也是你排序的:

lsof +D <dir> | grep REG

如果这还不够好,一个解决方案是进行这样的双重查询:

distinct