Как получить категории в django
У меня есть django программа различных категорий книг, и я хочу получить книги в определенной категории. Я могу сделать это с помощью django, но при использовании rest framework я застреваю в различных местах.У меня есть следующие блоки кода:
models.py
class Category (models.Model):
name = models.CharField(max_length=20, db_index=True)
slug = models.SlugField(max_length=40, unique=True)
class Meta:
verbose_name_plural = "Categories"
def __str__(self):
return self.name
serializers.py
class categories_serializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = "__all__"
views.py
class product_CategoryView(generics.ListCreateAPIView):
serializer_class = categories_serializer
def get_queryset(self):
return {
"categories": Category.objects.all()
}
================
class Book(models.Model):
categories = models.ManyToManyField(Category)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="book_owner")
name = models.CharField(max_length=150)
slug = models.SlugField(max_length=255, blank=True, null=True)
product_class = models.CharField(max_length=50)
image = models.ImageField(upload_to="images/books/")
....
Когда я пытаюсь получить доступ к категории, используя path(book/category', views.book_CategoryView.as_view(), name="book_category"),
, я сталкиваюсь со следующей ошибкой:
AttributeError at /book/category
Got AttributeError when attempting to get a value for field `name` on serializer `categories_serializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `str` instance.
Original exception text was: 'str' object has no attribute 'name'.
Я не понимаю, почему я получаю эту ошибку. Как мне поступить?