2016-09-15 84 views
0

我想通過一個字段的子字符串進行聚合。Django聚合的拆分字符串

models.py

class SomeModel(models.Model): 
    symbol = models.CharField(db_column='SYMBOL', max_length=16) 
    number = models.IntegerField(db_column='NUMBER') 

凡符號將是這樣的;

'symbol': 'foo.bar', 'number':5 
'symbol': 'foo.foo', 'number':10 
'symbol': 'some.water', 'number':1 
'symbol': 'some.milk', 'number':1 

我想要的是聚合;

symbol.split('.')[0] 

隨着最終結果是類似的;

'symbol': 'foo', 'number': 15 
'symbol': 'some', 'number': 2 

我已經看過了annotateaggregate文檔,但我這個苦苦掙扎。謝謝。

+0

檢查從沙善Singla答案'的https:// stackoverflow.com /問題/ 10340684 /組CONCAT等效功能於django' – Windsooon

+0

謝謝,我已經解決了使用此評論和下面的答案的組合的問題。 – user2019553

回答

0

你試過

SomeModel.objects.extra(select={'symbol': 'SUBSTRING_INDEX(symbol, ".")'})? 
+0

謝謝,這可以正確識別子字符串,但我無法對由'extra'引入的參數使用'聚合' – user2019553