Django rest framework - PrimaryKeyRelatedField -
i next django rest framework tutorial, , @ point here: http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions#adding-endpoints-for-our-user-models
my code userserializer looks like:
class userserializer(serializers.modelserializer): snippets = serializers.primarykeyrelatedfield(many=true, read_only=true) class meta: model = user fields = ('id', 'username', 'snippets')
i trying understand primarykeyrelatedfield exactly. doing changing code follows , refreshing url http://127.0.0.1:8000/users/
see different outputs
variation 1
snippets = serializers.relatedfield(many=true, read_only=true) { "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "username": "som", "snippets": [ "snippet title = hello", "snippet title = new2" ] } ] }
this printing out __unicode__()
value of snippets. expected this
variation 2 - using primarykeyrelatedfield
snippets = serializers.primarykeyrelatedfield(many=true, read_only=true) { "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "username": "som", "snippets": [ 1, 2 ] } ] }
this prints out primary key id of 2 snippets - i don't understand this
variation 3 - commenting out produces
#snippets = serializers.primarykeyrelatedfield(many=true, read_only=true) { "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "username": "som", "snippets": [ 1, 2 ] } ] }
from serializer docs
the default modelserializer uses primary keys relationships
if don't specify primarykeyrelatedfield
used under hood, variation 2 expected output.
hopefully helps.
django django-rest-framework
No comments:
Post a Comment