feat: base 优化get_object事务
This commit is contained in:
parent
57a61daa66
commit
5ece330457
|
@ -20,6 +20,7 @@ from drf_yasg.utils import swagger_auto_schema
|
||||||
import json
|
import json
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
|
from django.db.utils import NotSupportedError
|
||||||
|
|
||||||
class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
||||||
"""
|
"""
|
||||||
|
@ -109,9 +110,11 @@ class CustomGenericViewSet(MyLoggingMixin, GenericViewSet):
|
||||||
filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
|
filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
obj = queryset.select_for_update().get(**filter_kwargs)
|
obj = queryset.get(**filter_kwargs)
|
||||||
|
l_obj = queryset.model.objects.select_for_update().get(pk=obj.pk)
|
||||||
self.check_object_permissions(self.request, obj)
|
self.check_object_permissions(self.request, obj)
|
||||||
return obj
|
return l_obj
|
||||||
|
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
raise Http404
|
raise Http404
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue