Я получаю следующий ответ от моего REST API на http://127.0.0.1:8000/api/category/:Получить одну запись на Django Rest Framework на основе идентификатора
[
{
"id": "17442811-3217-4b67-8c2c-c4ab762460d6",
"title": "Hair and Beauty"
},
{
"id": "18a136b5-3dc4-4a98-97b8-9604c9df88a8",
"title": "Plumbing"
},
{
"id": "2f029642-0df0-4ceb-9058-d7485a91bfc6",
"title": "Personal Training"
}
]
Если бы я хотел получить доступ, одной записи, я полагаю, что я должен был бы перейти к http://127.0.0.1:8000/api/category/17442811-3217-4b67-8c2c-c4ab762460d6 доступа:
[
{
"id": "17442811-3217-4b67-8c2c-c4ab762460d6",
"title": "Hair and Beauty"
}
]
Однако, когда я пытаюсь это, он возвращает все записи. Как я могу это решить? Это мой код до сих пор:
urls.py
urlpatterns = [
url(r'^category/', views.CategoryList.as_view(), name="category_list"),
url(r'^category/?(?P<pk>[^/]+)/$', views.CategoryDetail.as_view(), name="category_detail")
]
views.py
class CategoryList(generics.ListAPIView):
"""
List or create a Category
HTTP: GET
"""
queryset = Category.objects.all()
serializer_class = CategorySerializer
class CategoryDetail(generics.RetrieveUpdateDestroyAPIView):
"""
List one Category
"""
serializer_class = CategorySerializer
serializers.py
class CategorySerializer(serializers.ModelSerializer):
"""
Class to serialize Category objects
"""
class Meta:
model = Category
fields = '__all__'
read_only_fields = ('id')
models.py
class Category(models.Model):
"""
Category model
"""
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
title = models.CharField(max_length=255)
def __str__(self):
return "%s" % (self.title)
Почему бы не использовать конструкцию django rest 'ModelViewSets', которая бы решила вашу проблему. пожалуйста, посмотрите, что по этой ссылке: http://www.django-rest-framework.org/api-guide/viewsets/#modelviewset –