@@ -89,14 +89,13 @@ class UserDetailSerializer(serializers.ModelSerializer):
8989 is_online = serializers .SerializerMethodField ()
9090 projects = serializers .SerializerMethodField ()
9191
92- @classmethod
93- def get_projects (cls , user : CustomUser ):
92+ def get_projects (self , user : CustomUser ):
9493 return UserProjectsSerializer (
9594 [
9695 collab .project
97- for collab in user .collaborations .select_related ("project" ).all ()
98- if not collab .project .draft
96+ for collab in user .collaborations .filter (project__draft = False )
9997 ],
98+ context = {"request" : self .context .get ("request" )},
10099 many = True ,
101100 ).data
102101
@@ -213,7 +212,18 @@ def update(self, instance, validated_data):
213212
214213class UserProjectsSerializer (serializers .ModelSerializer ):
215214 short_description = serializers .SerializerMethodField ()
216- views_count = serializers .SerializerMethodField (method_name = "get_views_count" )
215+ views_count = serializers .SerializerMethodField ()
216+ collaborator = serializers .SerializerMethodField (method_name = "get_collaborator" )
217+
218+ def get_collaborator (self , project : Project ):
219+ # TODO: fix me, import in a functon
220+ from projects .serializers import CollaboratorSerializer
221+
222+ user = self .context .get ("request" ).user
223+
224+ return CollaboratorSerializer (
225+ project .collaborator_set .get (user = user ), many = False
226+ ).data
217227
218228 @classmethod
219229 def get_views_count (cls , project ):
@@ -233,8 +243,9 @@ class Meta:
233243 "image_address" ,
234244 "industry" ,
235245 "views_count" ,
246+ "collaborator" ,
236247 ]
237- read_only_fields = ["leader" ]
248+ read_only_fields = ["leader" , "collaborator" ]
238249
239250
240251class UserListSerializer (serializers .ModelSerializer ):
0 commit comments