Проблема при создании UUID в качестве конечной точки во фреймворке Django Rest
Поскольку я новичок в Django, я не могу сделать конечную точку в API в библиотеке rest-framework, как сделать UUID в качестве конечной точки их
class Cart(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, max_length=30)
created_at = models.DateTimeField(auto_now_add=True)
class CartItem(models.Model):
cart = models.ForeignKey(Cart, on_delete=models.CASCADE, related_name='items')
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.PositiveSmallIntegerField(validators=[MinValueValidator(1)])
As For Serialize data their
class CartSerializer(serializers.ModelSerializer):
id = serializers.UUIDField(read_only=True)
class Meta:
model = Cart
fields = ['id']
Для просмотра
class CartViewSet(CreateModelMixin, GenericViewSet):
lookup_field = 'pk:'
queryset = Cart.objects.all()
serializer_class = CartSerializer
Для маршрутизации
from . import views
from pprint import print
from rest_framework_nested import routers
router = routers.DefaultRouter()
router.register('products', views.ProductViewSet,basename='products'),
router.register('collections', views.CollectionViewSet,basename='collections')
router.register('carts', views.CartViewSet, basename='carts')
pprint(router.urls)
Как решить эту ошибку
[01/Jan/2022 14:47:48] "GET /store/carts/ HTTP/1.1" 405 17010
[01/Jan/2022 14:48:04] "POST /store/carts/ HTTP/1.1" 201 16991
[01/Jan/2022 14:48:15] "OPTIONS /store/carts/ HTTP/1.1" 200 17589
Not Found: /store/carts/fc233c62-14dc-4cbe-a488-5add2c083b81
[01/Jan/2022 14:48:37] "GET /store/carts/fc233c62-14dc-4cbe-a488-5add2c083b81 HTTP/1.1" 404 16322`
CartViewSet
наследует от CreateModelMixin
и GenericViewSet
, поэтому не реализует действие retrieve.
Вам необходимо наследоваться от RetrieveModelMixin
, если вы хотите добавить это действие в свой набор представлений
class CartViewSet(CreateModelMixin, RetrieveModelMixin, GenericViewSet):
...