Reputation: 6693
when I go to http://127.0.0.1:8000/movies/
it get error : djangorestframework :type object has no attribute 'id'
Why can't I get the id value?
Please help me,thank you!
Here is my code
serialize.py
class MovieSerializer(serializers.ModelSerializer):
link = serializers.HyperlinkedRelatedField(source='id', view_name='movie_detail')
class Meta:
model = Movie
fields = ( 'link', 'title')
class MovieDetail(object):
queryset = Movie.objects.all()
serializer_class = MovieSerializer
urls.py
urlpatterns = patterns('',
url(r'^movies/$', MovieList.as_view(), name='movie_list'),
url(r'^movies/(?P<pk>[0-9]+)$', MovieDetail.as_view(), name='movie_detail'),
how can I edit it to show the result like this:
"results": [
{
"link": "http://127.0.0.1:8000/movies/1",
"title": "test",
},
{
"link": "http://127.0.0.1:8000/movies/2",
"title": "test",
},
]
Upvotes: 0
Views: 403
Reputation: 41671
A HyperlinkedRelatedField
must have a source
that points at a related object on the model. You are looking for a HyperlinkedIdentityField
, which will give a link for the current object, similar to what a HyperlinkedModelSerializer
will do automatically for you.
class MovieSerializer(serializers.ModelSerializer):
link = serializers.HyperlinkedIdentityField(view_name='movie_detail')
class Meta:
model = Movie
fields = ( 'link', 'title', )
Upvotes: 1