Я пытаюсь сделать REST в Django, используя библиотеку VIEWSETS.Я создал модель контейнера, которая работает хорошо.Контейнер связан с моделью ContainerModerator.Конечная точка должна быть:
POST-контейнеры / {container_id} / moderators
Одним из полей в ContainerModerator является container_id.Я хотел бы получить это с пути.
Ниже то, что у меня есть сейчас.Я пытался по-разному туда добраться.Я также читаю похожие посты, обычно для библиотеки, отличной от VIEWSETS.Я новичок, и мне интересно, есть ли простое, элегантное решение для этого случая, которое мне будет легко понять?Следует ли мне использовать другие библиотеки, такие как APIVIEW или GenericAPIView?
модели:
class ContainerModerator(models.Model):
moderator_id = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
container_id = models.ForeignKey(Container, on_delete=models.CASCADE)
сериализаторы:
class ContainerModeratorSerializer(serializers.ModelSerializer):
class Meta:
model = models.ContainerModerator
fields = '__all__'
просмотров:
class ContainerModeratorViewSet(viewsets.ModelViewSet):
serializer_class = serializers.ContainerModeratorSerializer
queryset = models.ContainerModerator.objects.all()
def perform_create(self, serializer):
serializer.save()
urls:
router.register('v1/containers/<int:container_id>/moderators',
views.ContainerModeratorViewSet)
urlpatterns = [
path('', include(router.urls))
]