Features: 1) Add address_line_1 and address_line_2 fields to Address serializer; 2) Include detailed traceback information in error responses when DEBUG is enabled.
Fixes: 1) Correct mismanagement of instance and serializer in update method of viewset. Extra: 1) Minor organizational improvement and clearer formatting in views.
This commit is contained in:
parent
7520184e56
commit
7e40596cb3
2 changed files with 13 additions and 3 deletions
|
|
@ -171,7 +171,11 @@ class AddressCreateSerializer(ModelSerializer): # noqa: F405
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Address
|
model = Address
|
||||||
fields = ["raw_data"]
|
fields = [
|
||||||
|
"raw_data",
|
||||||
|
"address_line_1",
|
||||||
|
"address_line_2"
|
||||||
|
]
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
raw = validated_data.pop("raw_data")
|
raw = validated_data.pop("raw_data")
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,10 @@ class UserViewSet(
|
||||||
return Response({"message": _("password reset successfully")}, status=status.HTTP_200_OK)
|
return Response({"message": _("password reset successfully")}, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
except (TypeError, ValueError, OverflowError, User.DoesNotExist) as e:
|
except (TypeError, ValueError, OverflowError, User.DoesNotExist) as e:
|
||||||
return Response({"error": str(e)}, status=status.HTTP_400_BAD_REQUEST)
|
data = {"error": str(e)}
|
||||||
|
if DEBUG:
|
||||||
|
data["detail"] = str(traceback.format_exc())
|
||||||
|
return Response(data, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
@method_decorator(ratelimit(key="ip", rate="3/h" if not DEBUG else "888/h"))
|
@method_decorator(ratelimit(key="ip", rate="3/h" if not DEBUG else "888/h"))
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
|
|
@ -142,6 +145,9 @@ class UserViewSet(
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
def update(self, request, pk=None, *args, **kwargs):
|
def update(self, request, pk=None, *args, **kwargs):
|
||||||
|
instance = self.get_object()
|
||||||
|
serializer = self.get_serializer(instance)
|
||||||
|
instance = serializer.update(instance=self.get_object(), validated_data=request.data)
|
||||||
return Response(
|
return Response(
|
||||||
self.get_serializer(self.get_object()).update(instance=self.get_object(), validated_data=request.data).data
|
self.get_serializer(instance.data)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue