diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..191f859 Binary files /dev/null and b/.DS_Store differ diff --git a/pairent_backend/.DS_Store b/pairent_backend/.DS_Store new file mode 100644 index 0000000..854cc05 Binary files /dev/null and b/pairent_backend/.DS_Store differ diff --git a/pairent_backend/pairent_app/.DS_Store b/pairent_backend/pairent_app/.DS_Store new file mode 100644 index 0000000..2dbaa29 Binary files /dev/null and b/pairent_backend/pairent_app/.DS_Store differ diff --git a/pairent_backend/pairent_app/migrations/0005_user_remove_apartament_isсhild_and_more.py b/pairent_backend/pairent_app/migrations/0005_user_remove_apartament_isсhild_and_more.py index 3b3d676..1cf2e68 100644 --- a/pairent_backend/pairent_app/migrations/0005_user_remove_apartament_isсhild_and_more.py +++ b/pairent_backend/pairent_app/migrations/0005_user_remove_apartament_isсhild_and_more.py @@ -1,5 +1,6 @@ -# Generated by Django 4.2.1 on 2023-05-08 16:44 +# Generated by Django 4.2.1 on 2023-05-12 11:50 +import django.core.validators from django.db import migrations, models @@ -16,11 +17,16 @@ class Migration(migrations.Migration): ('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': 'Пользователи', + }, ), migrations.RemoveField( model_name='apartament', - name='isСhild', + name='isChild', ), migrations.AlterField( model_name='apartament', diff --git a/pairent_backend/pairent_app/models.py b/pairent_backend/pairent_app/models.py index 972f0ad..294356f 100644 --- a/pairent_backend/pairent_app/models.py +++ b/pairent_backend/pairent_app/models.py @@ -84,6 +84,7 @@ class User(models.Model): """Тестовая модель данных для избранных и сравнения""" favorites_apartaments = models.CharField(max_length=100, verbose_name="Избранные квартиры") apartaments_for_comparison = models.CharField(max_length=100, verbose_name="Квартиры для сравнения") + psych_test_result = models.IntegerField(validators=[MaxValueValidator(100)], null=True, verbose_name="Результат психологического теста") class Meta: verbose_name = "Пользователь" diff --git a/pairent_backend/pairent_app/serializer.py b/pairent_backend/pairent_app/serializer.py index bfda413..5cf35b4 100644 --- a/pairent_backend/pairent_app/serializer.py +++ b/pairent_backend/pairent_app/serializer.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from .models import Apartament +from .models import Apartament, User class ApartamentListSerializer(serializers.ModelSerializer): @@ -16,4 +16,9 @@ class ApartamentDetailSerializer(serializers.ModelSerializer): class Meta: model = Apartament - fields = "__all__" \ No newline at end of file + fields = "__all__" + +class PsychTestAddResultSerializer(serializers.ModelSerializer): + class Meta: + model = User + 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 4684834..d67a7b3 100644 --- a/pairent_backend/pairent_app/urls.py +++ b/pairent_backend/pairent_app/urls.py @@ -8,5 +8,6 @@ urlpatterns = format_suffix_patterns([ path("apartament//", views.ApartamentViewSet.as_view({'get': 'retrieve'})), 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("apartaments/filters/", views.ApartmentFilter.as_view({'post': 'list'})), + path("psych_test/add_result/", views.PsychTestAddResultViewSet.as_view({'post': 'update'})) ]) diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py index 88f00e9..b13aa98 100644 --- a/pairent_backend/pairent_app/views.py +++ b/pairent_backend/pairent_app/views.py @@ -7,7 +7,8 @@ from django.http import HttpResponseBadRequest from .models import Apartament, User from .serializer import (ApartamentListSerializer, - ApartamentDetailSerializer) + ApartamentDetailSerializer, + PsychTestAddResultSerializer) import json @@ -79,4 +80,14 @@ class ApartmentFilter(viewsets.ViewSet): filtered.append(entry); - return Response(ApartamentListSerializer(filtered, many=True).data); \ No newline at end of file + return Response(ApartamentListSerializer(filtered, many=True).data); + + +# TODO: доделать +class PsychTestAddResultViewSet(viewsets.ViewSet): + def update(self, request): + 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) + \ No newline at end of file