Django Queryset 两个问题



my queryset :

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 - 如何用变量替换"值"?

update(值 = F('值'( + 1(

我需要从数据库中动态选择字段(值 1、值 2、值 3(来更改值。

您可以使用此变量来路径字段名称。

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})

最新更新