Reputation: 1953
I'm trying to create a HiScore Module for my IOS Apps.
I'm stuck on the POST (probably will have the same issue with the PUT, but not sure) part, I'm getting 405 in Postman. LIST AND DETAILS are working great, so there is no problem with the models, serialisers or views, just something I'm guessing with adding permissions somewhere
views
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class GameViewSet(viewsets.ModelViewSet):
queryset = HiScore.objects.all()
serializer_class = GameSerializer
class GameTypeViewSet(viewsets.ModelViewSet):
queryset = HiScore.objects.all()
serializer_class = GameTypeSerializer
class GameLevelViewSet(viewsets.ModelViewSet):
queryset = HiScore.objects.all()
serializer_class = GameLevelSerializer
class HiScoreViewSet(viewsets.ModelViewSet):
permission_classes = [AllowAny,]
queryset = HiScore.objects.all()
serializer_class = HiScoreSerializer
serialisers.py
class HiScoreSerializer(ModelSerializer):
image = SerializerMethodField()
class Meta:
model = HiScore
fields = ("user", "game", "gameType", "gameLevel", "points", "image")
def get_image(self, obj):
try:
profile = UserProfile.objects.get(user=obj.user)
return profile.image.url
except:
return None
urls.py
router = DefaultRouter()
router.register(prefix='hiscores', viewset=HiScoreViewSet)
urlpatterns = router.urls
Upvotes: 1
Views: 2228
Reputation: 38899
I think you are missing as_view
in view according to documentation. Try this:
In views:
hiscores = HiScoreViewSet.as_view({
'get': 'list',
'post': 'create'
})
And in urls:
from rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = format_suffix_patterns([
url(r'^hiscores/$', hiscores, name='hiscores')
])
http://www.django-rest-framework.org/api-guide/viewsets/
Upvotes: 1