Skip to content

Commit 0d58831

Browse files
committed
Исправлены ошибки сериализации данных drf-yasg
1 parent 48eb1e3 commit 0d58831

6 files changed

Lines changed: 24 additions & 21 deletions

File tree

core/serializers.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
from .models import SkillToObject, SkillCategory, Skill
44

55

6+
class EmptySerializer(serializers.Serializer):
7+
pass
8+
9+
610
class SetLikedSerializer(serializers.Serializer):
711
is_liked = serializers.BooleanField()
812

feed/views.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
from django.contrib.contenttypes.models import ContentType
2-
from django.db.models import QuerySet, Q
2+
from django.db.models import Q, QuerySet
33
from rest_framework.generics import CreateAPIView
44
from rest_framework.response import Response
55
from rest_framework.views import APIView
66

7+
from core.serializers import EmptySerializer
78
from feed.pagination import FeedPagination
89
from feed.services import get_liked_news
9-
1010
from news.models import News
11-
from .serializers import NewsFeedListSerializer
12-
from projects.models import Project
1311
from partner_programs.models import PartnerProgramUserProfile
12+
from projects.models import Project
1413
from vacancy.models import Vacancy
1514

15+
from .serializers import NewsFeedListSerializer
16+
1617

1718
class NewSimpleFeed(APIView):
1819
serializator_class = NewsFeedListSerializer
@@ -29,11 +30,9 @@ def _get_filter_data(self) -> list[str]:
2930

3031
def _get_excluded_projects_ids(self) -> list[int]:
3132
"""IDs for exclude projects which in Partner Program."""
32-
excluded_projects = (
33-
PartnerProgramUserProfile.objects
34-
.values_list("project_id", flat=True)
35-
.exclude(project_id__isnull=True)
36-
)
33+
excluded_projects = PartnerProgramUserProfile.objects.values_list(
34+
"project_id", flat=True
35+
).exclude(project_id__isnull=True)
3736
return excluded_projects
3837

3938
def get_queryset(self) -> QuerySet[News]:
@@ -80,6 +79,8 @@ def get(self, *args, **kwargs):
8079

8180

8281
class DevScript(CreateAPIView):
82+
serializer_class = EmptySerializer
83+
8384
def create(self, request):
8485
content_type_project = ContentType.objects.filter(model="project").first()
8586
for project in Project.objects.filter(draft=False):

partner_programs/serializers.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,7 @@ class PartnerProgramForMemberSerializer(PartnerProgramBaseSerializerMixin):
8080

8181
views_count = serializers.SerializerMethodField(method_name="count_views")
8282
links = serializers.SerializerMethodField(method_name="get_links")
83-
is_user_manager = serializers.SerializerMethodField(
84-
method_name="get_is_user_manager"
85-
)
83+
is_user_manager = serializers.SerializerMethodField(method_name="get_is_user_manager")
8684

8785
def count_views(self, program):
8886
return get_views_count(program)

partner_programs/views.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from rest_framework.response import Response
2020
from rest_framework.views import APIView
2121

22-
from core.serializers import SetLikedSerializer, SetViewedSerializer
22+
from core.serializers import EmptySerializer, SetLikedSerializer, SetViewedSerializer
2323
from core.services import add_view, set_like
2424
from partner_programs.helpers import date_to_iso
2525
from partner_programs.models import (
@@ -69,6 +69,7 @@ class PartnerProgramList(generics.ListCreateAPIView):
6969
class PartnerProgramDetail(generics.RetrieveAPIView):
7070
queryset = PartnerProgram.objects.prefetch_related("materials", "managers").all()
7171
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
72+
serializer_class = PartnerProgramForUnregisteredUserSerializer
7273

7374
def get(self, request, *args, **kwargs):
7475
program = self.get_object()
@@ -320,7 +321,7 @@ def put(self, request, project_id, *args, **kwargs):
320321

321322
class PartnerProgramProjectSubmitView(GenericAPIView):
322323
permission_classes = [IsAuthenticated, IsProjectLeader]
323-
serializer_class = None
324+
serializer_class = EmptySerializer
324325
queryset = PartnerProgramProject.objects.all()
325326

326327
@swagger_auto_schema(
@@ -375,6 +376,7 @@ class ProgramProjectFilterAPIView(GenericAPIView):
375376
serializer_class = ProgramProjectFilterRequestSerializer
376377
permission_classes = [permissions.IsAuthenticated]
377378
pagination_class = PartnerProgramPagination
379+
queryset = PartnerProgram.objects.none()
378380

379381
def post(self, request, pk):
380382
serializer = self.get_serializer(data=request.data)
@@ -445,6 +447,9 @@ class PartnerProgramProjectsAPIView(generics.ListAPIView):
445447
pagination_class = PartnerProgramPagination
446448

447449
def get_queryset(self):
450+
if "pk" not in self.kwargs:
451+
return Project.objects.none()
452+
448453
program = get_object_or_404(PartnerProgram, pk=self.kwargs["pk"])
449454
return Project.objects.filter(program_links__partner_program=program).distinct()
450455

procollab/celery.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
11
import os
22

33
from celery import Celery
4-
import django
54

6-
# from celery.schedules import crontab
75
from celery.schedules import crontab
86

97
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "procollab.settings")
10-
django.setup()
118

12-
app = Celery("procollab")
139

10+
app = Celery("procollab")
1411
app.config_from_object("django.conf:settings", namespace="CELERY")
15-
1612
app.autodiscover_tasks()
1713

1814
app.conf.task_serializer = "json"
19-
2015
app.conf.beat_schedule = {
2116
"outdate_vacancy": {
2217
"task": "vacancy.tasks.email_notificate_vacancy_outdated",

projects/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@
5151
IsProjectLeaderOrReadOnlyForNonDrafts,
5252
TimingAfterEndsProgramPermission,
5353
)
54+
from core.serializers import EmptySerializer
5455
from projects.serializers import (
5556
AchievementDetailSerializer,
5657
AchievementListSerializer,
5758
CompanySerializer,
58-
EmptySerializer,
5959
ProjectCollaboratorSerializer,
6060
ProjectCompanySerializer,
6161
ProjectCompanyUpdateSerializer,

0 commit comments

Comments
 (0)