Я создаю пример API отдыха с использованием django-rest-framework, я ссылался на учебник на этом сайте https://www.django -rest-framework.org / tutorial / 1-serialization / Я API работает нормальнокогда список и создать новый объект, но он выдает исключение при подробном просмотре (http://127.0.0.1:8000/cars/1) объекта.
Я добавил свой фрагмент кода ниже, пожалуйста, дайте мне знать, что я делаю
Models.py
class Car(models.Model):
created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=100, blank=True, default='')
price = models.TextField()
class Meta:
ordering = ('created',)
serializers.py
class CarsSerializer(serializers.ModelSerializer):
class Meta:
model = Car
id = serializers.IntegerField(read_only=True)
fields = ('id', 'created', 'name', 'price')
Views.py
@csrf_exempt
def car_list(request):
"""
List all code cars, or create a new car.
"""
if request.method == 'GET':
cars = Car.objects.all()
serializer = CarsSerializer(cars, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = CarsSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
@csrf_exempt
def car_detail(request, pk):
"""
Retrieve, update or delete a code cars.
"""
try:
car = Car.objects.get(pk=pk)
except Car.DoesNotExist:
return HttpResponse(status=404)
if request.method == 'GET':
serializer = CarsSerializer(Car)
return JsonResponse(serializer.data)
elif request.method == 'PUT':
data = JSONParser().parse(request)
serializer = CarsSerializer(Car, data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.errors, status=400)
elif request.method == 'DELETE':
Car.delete()
return HttpResponse(status=204)
Urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
path('cars/', views.car_list),
path('cars/<int:pk>/', views.car_detail),
]