2013-02-05 26 views
0

我在模型上有一個price字段和一個shipping字段。是否有可能對兩個字段總和應用查詢集方法

我需要添加兩者的值,並將它們用作對象查詢的一部分Q對象查詢。理想的情況下,是這樣的:

if '1' in selected_prices: 
    query |= Q(price_and_shipping__range=(1, 1000)) 

if '2' in selected_prices: 
    query |= Q(price_and_shipping__range=(1001, 2000)) 

我知道我不能只創建一個price_and_shipping性質和使用,但有什麼辦法?

回答

0

發現了一個偉大的方式來解決這個使用F()表達式

if '1' in selected_prices: 
    query |= Q(price__gte=1 - F('shipping'), price__lte=1000 - F('shipping')) 

if '2' in selected_prices: 
    query |= Q(price__gte=1001 - F('shipping'), price__lte=2000 - F('shipping')) 

使用這個回答類似的問題想通了這一點:https://stackoverflow.com/a/10664491/152653

更多關於F()表達式:https://docs.djangoproject.com/en/dev/topics/db/queries/#query-expressions

相關問題