如何将主键从url传递给django中基于函数的视图?
问题描述:
我有一个函数基于视图:如何将主键从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)
我没有收到任何错误消息。
答
嗨,你可以用命名组
尝试在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
添加'views.py'和发布错误。 –
你是否收到任何错误? –
我没有收到任何错误消息。 – Sushil