Opened 2 years ago
Closed 2 years ago
#34072 closed Bug (invalid)
django += 1 increments by 2 instead of 1
Description ¶
from django.db.models import F
from hotel.models import Hotel
Hotel.objects.filter(city='Chicago').update(total_like=F('total_like'+1))
total_like += 1 increments by 2 instead of 1
So here is my question: What kind of locking mechanisms are available to Django, to deal with situations similar to this?
After installing the channel and HTTPS request also send wia asgi. but if the same code is in use WSGI request then working fine.
https://stackoverflow.com/questions/68778007/django-1-increments-by-2-instead-of-1
https://stackoverflow.com/questions/1030270/race-conditions-in-django
Change History (3)
by , 2 years ago
Attachment: | Screenshot_8.png added |
---|
comment:1 by , 2 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Thanks for this ticket, however Trac is not a support channel and it's a support question. You can use select_for_update()
to protect yourself against the race conditions (it's already mentioned in Stack Overflow's answers). Closing per TicketClosingReasons/UseSupportChannels.
Code photo