Skip to content

Commit d825f35

Browse files
31 - Nested Serializer Part 1
1 parent fe8dd05 commit d825f35

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

scripts/cfe_rest_framework_api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
file_data = {
4747
'image': image
4848
}
49-
r = requests.put(ENDPOINT, data=data2, headers=headers2, files=file_data)
49+
r = requests.get(ENDPOINT, headers=headers2)
5050
print(r.text)
5151
#r = requests.post(BASE_ENDPOInT, data=data2, headers=headers2, files=file_data)
5252
#print(r.text)

src/accounts/api/serializers.py

+13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@
1515
User = get_user_model()
1616

1717

18+
class UserPublicSerializer(serializers.ModelSerializer):
19+
uri = serializers.SerializerMethodField(read_only=True)
20+
class Meta:
21+
model = User
22+
fields = [
23+
'id',
24+
'username',
25+
'uri'
26+
]
27+
28+
def get_uri(self, obj):
29+
return "/api/users/{id}/".format(id=obj.id)
30+
1831

1932
class UserRegisterSerializer(serializers.ModelSerializer):
2033
password2 = serializers.CharField(style={'input_type': 'password'}, write_only=True)

src/status/api/serializers.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from rest_framework import serializers
22

3+
4+
from accounts.api.serializers import UserPublicSerializer
35
from status.models import Status
46

57
'''
@@ -9,17 +11,21 @@
911
'''
1012

1113
class StatusSerializer(serializers.ModelSerializer):
14+
uri = serializers.SerializerMethodField(read_only=True)
15+
user = UserPublicSerializer(read_only=True)
1216
class Meta:
1317
model = Status
1418
fields =[
19+
'uri',
1520
'id', # ?
1621
'user',
1722
'content',
1823
'image'
1924
]
2025
read_only_fields = ['user'] # GET #readonly_fields
2126

22-
27+
def get_uri(self, obj):
28+
return "/api/status/{id}/".format(id=obj.id)
2329
# def validate_content(self, value):
2430
# if len(value) > 10000:
2531
# raise serializers.ValidationError("This is wayy too long.")

0 commit comments

Comments
 (0)