Я пишу одну модель приложения в DRF. Моя модель выглядит следующим образом:
class Superhero(models.Model):
squad_name = models.CharField(max_length=100)
hometown = models.CharField(max_length=30)
formed = models.DateField()
active = models.BooleanField()
members = JSONField()
Мой набор выглядит следующим образом:
class SuperheroViewSet(viewsets.ViewSet):
"""
A simple ViewSet for listing or retrieving superheros.
"""
serializer_class = SuperheroSerializer
def list(self, request):
"""list superhero object"""
queryset = Superhero.objects.filter()
serializer = SuperheroSerializer(queryset, many=True)
return Response(serializer.data)
def retrieve(self, request, pk=None):
queryset = Superhero.objects.filter()
superhero = get_object_or_404(queryset, pk=pk)
serializer = SuperheroSerializer(superhero)
return Response(serializer.data)
и, наконец, мой маршрутизатор:
router = DefaultRouter()
router.register(r'superhero', SuperheroViewSet, basename='superhero')
urlpatterns = router.urls
Как мне теперь установить URL, поэтому я бы запросил поле members, например: // superhero / {id} / members, чтобы получить конкретные c идентификаторы членов. Я пробовал вложенный URL-адрес, но ничего не получалось. URL у меня работает для супергероя / и супергероя / {id}.