add psych_test_result column in User model; start made PsychTestAddResultViewSet
This commit is contained in:
parent
db071362cb
commit
c4637eed7a
Binary file not shown.
Binary file not shown.
|
@ -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',
|
||||
|
|
|
@ -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 = "Пользователь"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from rest_framework import serializers
|
||||
|
||||
from .models import Apartament
|
||||
from .models import Apartament, User
|
||||
|
||||
|
||||
class ApartamentListSerializer(serializers.ModelSerializer):
|
||||
|
@ -17,3 +17,8 @@ class ApartamentDetailSerializer(serializers.ModelSerializer):
|
|||
class Meta:
|
||||
model = Apartament
|
||||
fields = "__all__"
|
||||
|
||||
class PsychTestAddResultSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = User
|
||||
fields = "psych_test_result"
|
|
@ -8,5 +8,6 @@ urlpatterns = format_suffix_patterns([
|
|||
path("apartament/<int:pk>/", 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/<int:pk>", views.PsychTestAddResultViewSet.as_view({'post': 'update'}))
|
||||
])
|
||||
|
|
|
@ -7,7 +7,8 @@ from django.http import HttpResponseBadRequest
|
|||
|
||||
from .models import Apartament, User
|
||||
from .serializer import (ApartamentListSerializer,
|
||||
ApartamentDetailSerializer)
|
||||
ApartamentDetailSerializer,
|
||||
PsychTestAddResultSerializer)
|
||||
|
||||
import json
|
||||
|
||||
|
@ -80,3 +81,13 @@ class ApartmentFilter(viewsets.ViewSet):
|
|||
filtered.append(entry);
|
||||
|
||||
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)
|
||||
|
Loading…
Reference in New Issue