53👍
✅
You can call reset_queries()
from the django.db module.
from django.db import reset_queries
reset_queries()
1👍
You can use reset_queries()
to clear connection.queries
.
For example, if putting reset_queries()
after Person.objects.select_for_update()
as shown below:
# "store/views.py"
from django.db import transaction
from .models import Person
from django.db import reset_queries
from django.db import connection
from django.http import HttpResponse
@transaction.atomic
def test(request):
Person.objects.create(name="John") # INSERT
qs = Person.objects.select_for_update().get(name="John") # SELECT FOR UPDATE
reset_queries() # Here
qs.name = "Tom"
qs.save() # UPDATE
qs.delete() # DELETE
for query in connection.queries: # Here
print(query)
return HttpResponse("Test")
You get only UPDATE
and DELETE
queries without INSERT
and SELECT FOR UPDATE
queries as shown below:
{'sql': 'UPDATE "store_person" SET "name" = \'Tom\' WHERE "store_person"."id" = 190', 'time': '0.000'}
{'sql': 'DELETE FROM "store_person" WHERE "store_person"."id" IN (190)', 'time': '0.000'}
[24/Dec/2022 07:00:01] "GET /store/test/ HTTP/1.1" 200 9
- [Django]-PicklingError: Can't pickle <class 'decimal.Decimal'>: it's not the same object as decimal.Decimal
- [Django]-Disable session creation in Django
- [Django]-Already Registered at /appname/: The model User is already registered
Source:stackexchange.com