From 798999fcac3d962c5f2e259fed96f0231543f740 Mon Sep 17 00:00:00 2001 From: Mikhail Khromov Date: Sat, 19 Nov 2022 14:33:58 +0300 Subject: [PATCH] fixed achievements for users #2 --- users/views.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/users/views.py b/users/views.py index dfeadec3..7dac633b 100644 --- a/users/views.py +++ b/users/views.py @@ -104,10 +104,19 @@ class UserDetail(RetrieveUpdateDestroyAPIView): serializer_class = UserDetailSerializer def put(self, request, pk): + # bootleg version of updating achievements via user if request.data.get("achievements") is not None: achievements = request.data.get("achievements") for i in achievements: - instance = UserAchievement.objects.get(id=i["id"]) + achievement_id = i.get("id") + if achievement_id is None: + UserAchievement.objects.create( + title=request.data["title"], + status=request.data["status"], + user_id=pk, + ) + continue + instance = UserAchievement.objects.get(id=achievement_id) i["user"] = pk serializer = AchievementDetailSerializer(instance, data=i, partial=False) serializer.is_valid(raise_exception=True)