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

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -