python - all() got an unexpected keyword argument 'pk' in Django -
python - all() got an unexpected keyword argument 'pk' in Django -
i've got problem django , django rest framework.
when go http://mynameislee.co.uk/albums/ works fine , returns django framework fine when seek http://mynameislee.co.uk/albums/1 all() got unexpected keyword argument 'pk'.
this code.
urls.py
# api url(r'^albums/$', 'canary.views.album_list', name='album_list'), url(r'^albums/(?p<pk>[0-9])$', 'canary.views.album_detail', name='album_detail'),
views.py
@login_required @api_view(['get', 'post']) def album_list(request): # list tasks, or create new task. if request.method == 'get': album = album.objects.all() serializer = albumserializer(album, many=true) homecoming response(serializer.data) elif request.method == 'post': serializer = albumserializer(data=request.data) if serializer.is_valid(): serializer.save() homecoming response(serializer.data, status=status.http_201_created) else: homecoming response(serializer.errors, status=status.http_400_bad_request) @login_required @api_view(['get', 'put', 'delete']) def album_detail(request, pk): # get, update or delete specific album try: album = album.objects.all(pk=id) except album.doesnotexist: homecoming response(status=status.http_404_not_found) if request.method == 'get': serializer = albumserializer(album) homecoming response(serializer.data) elif request.method == 'put': serializer = albumserializer(album, data=request.data) if serializer.is_valid(): serializer.save() homecoming response(serializer.data) else: homecoming response(serializer.errors, status=status.http_400_bad_request) elif request.method == 'delete': album.delete() homecoming response(status=status.http_204_no_content)
models.py
class album(models.model): album_id = models.autofield(primary_key=true) artist_name = models.charfield(max_length=255, blank=true) album_name = models.charfield(max_length=255, blank=true) def __unicode__(self): homecoming self.album_name
you cant utilize all
filter set.
album = album.objects.all(pk=id) #wrong
use filter
instead:
album = album.objects.filter(pk=id) >>> type(album) -> 'queryset'
here docs lot of examples.
and @bjorn suggested: can utilize get
save getting item queryset:
album = album.objects.get(pk=id) >>> type(album) -> 'album'
python django rest
Comments
Post a Comment