2017-09-24 66 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

添加'views.py'和發佈錯誤。 –

+0

你是否收到任何錯誤? –

+0

我沒有收到任何錯誤消息。 – Sushil

回答

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"), 
] 

如果您想了解更多請參考該文檔Named groups

相關問題