diff --git a/.DS_Store b/.DS_Store index 191f859..f25c7a4 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/pairent_backend/.DS_Store b/pairent_backend/.DS_Store index 854cc05..befcbdd 100644 Binary files a/pairent_backend/.DS_Store and b/pairent_backend/.DS_Store differ diff --git a/pairent_backend/pairent_app/.DS_Store b/pairent_backend/pairent_app/.DS_Store index 2dbaa29..7155162 100644 Binary files a/pairent_backend/pairent_app/.DS_Store and b/pairent_backend/pairent_app/.DS_Store differ diff --git a/pairent_backend/pairent_app/migrations/0005_user.py b/pairent_backend/pairent_app/migrations/0005_user.py new file mode 100644 index 0000000..c1fae4a --- /dev/null +++ b/pairent_backend/pairent_app/migrations/0005_user.py @@ -0,0 +1,27 @@ +# Generated by Django 4.2.1 on 2023-05-12 12:45 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pairent_app', '0004_apartament_lastprice'), + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('favorites_apartaments', models.CharField(max_length=100, verbose_name='Избранные квартиры')), + ('apartaments_for_comparison', models.CharField(max_length=100, verbose_name='Квартиры для сравнения')), + ('psych_test_result', models.IntegerField(null=True, validators=[django.core.validators.MaxValueValidator(100)], verbose_name='Результат психологического теста')), + ], + options={ + 'verbose_name': 'Пользователь', + 'verbose_name_plural': 'Пользователи', + }, + ), + ] diff --git a/pairent_backend/pairent_app/serializer.py b/pairent_backend/pairent_app/serializer.py index 5cf35b4..3a10520 100644 --- a/pairent_backend/pairent_app/serializer.py +++ b/pairent_backend/pairent_app/serializer.py @@ -21,4 +21,4 @@ class ApartamentDetailSerializer(serializers.ModelSerializer): class PsychTestAddResultSerializer(serializers.ModelSerializer): class Meta: model = User - fields = "psych_test_result" \ No newline at end of file + fields = ("psych_test_result",) \ No newline at end of file diff --git a/pairent_backend/pairent_app/urls.py b/pairent_backend/pairent_app/urls.py index d67a7b3..50bc96f 100644 --- a/pairent_backend/pairent_app/urls.py +++ b/pairent_backend/pairent_app/urls.py @@ -9,5 +9,5 @@ urlpatterns = format_suffix_patterns([ path("apartaments/comparison/", views.ApartamentGetManyViewSet.as_view({'get': 'retrieve'})), # пример: apartaments/comparison/?user_id=1 user_id - id пользователя path("apartaments/favorite/", views.ApartamentGetManyViewSet.as_view({'get': 'list'})), # пример: apartaments/favorite/?user_id=1 user_id - id пользователя path("apartaments/filters/", views.ApartmentFilter.as_view({'post': 'list'})), - path("psych_test/add_result/", views.PsychTestAddResultViewSet.as_view({'post': 'update'})) + path("psych_test/add_result/", views.PsychTestAddResultViewSet.as_view({'patch': 'update'})) # пример: psych_test/add_result/1/?result=50 result - результат псих теста пользователя ]) diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py index b13aa98..789dee2 100644 --- a/pairent_backend/pairent_app/views.py +++ b/pairent_backend/pairent_app/views.py @@ -83,11 +83,12 @@ class ApartmentFilter(viewsets.ViewSet): return Response(ApartamentListSerializer(filtered, many=True).data); -# TODO: доделать class PsychTestAddResultViewSet(viewsets.ViewSet): - def update(self, request): + def get_object(self, pk): + return User.objects.filter(pk=pk) + def update(self, request, pk): + user = self.get_object(pk) result = request.query_params.get("result", None) - user = User.User.objects.filter(pk=self.kwargs['pk']) user.update(psych_test_result=result) - return Response(PsychTestAddResultSerializer(user).data) + return Response(PsychTestAddResultSerializer(User.objects.get(pk=pk)).data) \ No newline at end of file