Skip to content

Commit 3fb8113

Browse files
feat: enhance UserSerializer to include detailed user data in GET requests
1 parent 306cfa1 commit 3fb8113

File tree

1 file changed

+27
-19
lines changed

1 file changed

+27
-19
lines changed

backend/core/serializers.py

+27-19
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,26 @@
1111
# from .tasks import train_model
1212

1313

14+
15+
16+
class UserSerializer(serializers.ModelSerializer):
17+
class Meta:
18+
model = OsmUser
19+
fields = [
20+
"osm_id",
21+
"username",
22+
# "is_superuser",
23+
# "is_active",
24+
# "is_staff",
25+
# "date_joined",
26+
# "email",
27+
# "img_url",
28+
# "user_permissions",
29+
]
30+
31+
read_only_fields = ["osm_id", "username"]
32+
33+
1434
class DatasetSerializer(serializers.ModelSerializer):
1535
models_count = serializers.SerializerMethodField()
1636

@@ -41,25 +61,13 @@ def create(self, validated_data):
4161
def get_models_count(self, obj):
4262
return Model.objects.filter(dataset=obj).count()
4363

44-
45-
class UserSerializer(serializers.ModelSerializer):
46-
class Meta:
47-
model = OsmUser
48-
fields = [
49-
"osm_id",
50-
"username",
51-
# "is_superuser",
52-
# "is_active",
53-
# "is_staff",
54-
# "date_joined",
55-
# "email",
56-
# "img_url",
57-
# "user_permissions",
58-
]
59-
60-
read_only_fields = ["osm_id", "username"]
61-
62-
64+
def to_representation(self, instance):
65+
# get default
66+
ret = super().to_representation(instance)
67+
# For GET requests, replace the user field with detailed UserSerializer data
68+
if self.context.get('request') and self.context['request'].method == 'GET':
69+
ret['user'] = UserSerializer(instance.user).data
70+
return ret
6371
class ModelSerializer(serializers.ModelSerializer):
6472
user = UserSerializer(read_only=True)
6573
accuracy = serializers.SerializerMethodField()

0 commit comments

Comments
 (0)