0

我的查詢集:Django的查詢集兩個問題

Status.objects.filter(date__gte='2017-07-05', date__lt='2017-07-09', type='X').update(value=F('value') + 1) 

我的數據庫:

date  | value | value1 | value2 | type 
2017-07-05 | 0 | 0 | 0 | X 
2017-07-06 | 0 | 0 | 0 | X 
2017-07-07 | 0 | 0 | 0 | X 
2017-07-08 | 0 | 0 | 0 | X 
2017-07-09 | 0 | 0 | 0 | X 
2017-07-10 | 0 | 0 | 0 | X 

我有兩個問題,但我上面的查詢集不起作用。

1 - 如何更新日期範圍中的字段「值」?

2 - 如何用變量替換「值」?

更新(值= F( '值')+ 1)

我需要動態選擇字段(值1,值2,valuse3)從數據庫中改變的值。

回答

1

你可以用一個變量來路徑字段名稱。

somename='some_field' #value.value1,... in your case 
Status.objects.filter(Q(date__gte='2017-07-05'), Q(date__lt='2017-07-09'), Q(type='X')).update(**{somename: F(somename)+1})