python - Toggle boolean fields from a Queryset using F objects -
python - Toggle boolean fields from a Queryset using F objects -
i've tried these queries these results:
queryset.update(done=not f('boolean')) {'time': '0.001', 'sql': u'update "todo_item" set "done" = true'} queryset.update(done=(f('boolean')==false)) {'time': '0.001', 'sql': u'update "todo_item" set "done" = false'}
what this:
queryset.update(done=f('done')) {'time': '0.002', 'sql': u'update "todo_item" set "done" = "todo_item"."done"'}
but
set "done" = !"todo_item"."done"
to toggle boolean value
i developing django-orm extension, , have partially implemented solution problem.
>>> django_orm.expressions import f >>> niwi.models import testmodel >>> testmodel.objects.update(done=~f('done')) # sql: update "niwi_testmodel" set "done" = not "niwi_testmodel"."done"; args=()
https://github.com/niwibe/django-orm
is partial solution , not clean. , far postgresql. in while i'll see how improve it.
update: improved , works on postgresql, mysql , sqlite.
python sql django boolean django-queryset
Comments
Post a Comment