Почему я получаю эту ошибку "Ни один продукт не соответствует заданному запросу."?
Когда я добавляю product
к моей home
функции в views.py я получаю эту ошибку :
No product matches the given query.
Почему я получаю эту ошибку?
просмотров:
class productviewset(viewsets.ModelViewSet):
queryset=product.objects.all()
serializer_class = productSerializer
def create(self, request):
serialized = productSerializer(data=request.data, many=True)
if serialized.is_valid():
serialized.save()
return Response(serialized.data, status=status.HTTP_201_CREATED)
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
@action (detail=False , methods=['post'])
def delete(self,request):
product.objects.all().delete()
return Response('success')
def home(request ):
p=get_object_or_404(product,pk=1)
return render(request,'home.html',{'p':p})
def foods(request):
return render(request,'foods.html',{'p':category.objects.all()})
модели:
class category(models.Model):
name=models.CharField(max_length=255, db_index=True)
def __str__(self):
return self.name
class product(models.Model):
category = models.ForeignKey(category, related_name='products',on_delete=models.CASCADE)
image=models.CharField(max_length=500)
description=models.CharField(max_length=500)
price=models.CharField(max_length=50)
buy=models.CharField(max_length=100)
Урлы:
from django.urls import include, path
from rest_framework import routers
from quick.views import productviewset
from quick import views
from django.contrib import admin
urlpatterns = [
path('api/', include(router.urls)),
path('',views.home),
path('foods',views.foods),
path('admin/',admin.site.urls),
]
Попробуйте так
.
views.py
def home(request, id):
p=get_object_or_404(product, id=id)
return render(request,'home.html',{'p':p})
urls.py
urlpatterns = [
...
path('<id>', views.home, name='name'),
]