Фильтрация many2many django rest framework
У меня есть модель сущности, и я хочу перечислить все экземпляры Entity на основе id экземпляра категории в ней. В общем, я хочу перечислить все экземпляры Entity с id категории 1 с помощью /specialists/category/1, но по какой-то причине я получаю
Not Found: /api/v1/specialists/categories/1
Хотя код выглядит нормально.
class Entity(models.Model):
entity_category = models.ManyToManyField(Category)
class SpecialistSerializer(serializers.ModelSerializer):
entity_category = SpecialistCategorySerializer(read_only=True, many=True)
class Meta:
model = Entity
fields = (....., entity_category)
class SpecialistsPerCategory(generics.ListAPIView):
serializer_class = SpecialistSerializer
def get_queryset(self):
category_id = self.kwargs['pk']
return Entity.objects.filter(entity_category=category_id, lookup_type='in')
path('specialists/category/<int:pk>', SpecialistsPerCategory.as_view()),
У вас есть идеи, что не так?
У вас есть category в path, но множественное число categories в url.
Также я думаю, что это не будет работать, потому что SpecialistSerializer имеет модель Entity, но вы хотите получить pk из Category в SpecialistsPerCategory, который основан на этом сериализаторе.