2017-09-24 1 views
0

私はとしての機能ベースのビューがあります。URLからの主キーをdjangoの関数ベースのビューに渡すにはどうすればよいですか?

@api_view(['GET', 'PUT', 'DELETE']) 
def hotel_detail(request, pk): 
    # Lots of code 

をし、私はこのURLパターン使用しています:

url(r'^hotel/(?P<pk>[0-9]+)/$', api.hotel_detail) 

をしかし、それは

ビュー働いていない:

@api_view(['GET', 'PUT', 'DELETE']) 
def hotel_detail(request, pk): 
    # Retrieve, update or delete a Hotel instance. 
    try: 
     hotel = models.Hotel.objects.get(pk=pk) 
    except models.Hotel.DoesNotExist: 
     return Response(status=status.HTTP_404_NOT_FOUND) 

    if request.method == 'GET': 
     serializer = serializers.HotelSerializer(hotel) 
     return Response(serializer.data) 

    elif request.method == 'PUT': 
     serializer = serializers.HotelSerializer(hotel, data=request.data) 
     if serializer.is_valid(): 
      serializer.save() 
      return Response(serializer.data) 
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) 

    elif request.method == 'DELETE': 
     hotel.delete() 
     return Response(status=status.HTTP_204_NO_CONTENT) 

を私はどんなエラーメッセージも受け取っていません。

+0

を参照してください知っている場合こんにちは、あなたのurls.py

from django.conf.urls import url from . import views urlpatterns = [ url(r'^hotel/(?P<pk>[0-9]+)/$', api.hotel_detail name="hotel_details"), ] 

名前付きグループ

で試すことができますエラーを投稿してください。 –

+0

エラーが生じますか? –

+0

エラーメッセージは表示されません。 urly.py:api.hotel_detailまたはviews.hotel_detailの – Sushil

答えて

関連する問題