Я хочу иметь конечную точку для каждого изображения, в которое я хочу добавить теги.
Предположим, у меня есть:
#models.py
class ImageTag(models.Model):
name = models.CharField()
description = models.CharField()
class Image(models.Model):
image_id = models.CharField(unique=True)
image_tags = models.ManyToManyField(ImageTag, blank=True)
...
#serializers.py
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = '__all__'
#views.py
class ImageViewSet(viewsets.ModelViewSet):
queryset = Image.objects.all()
serializer_class = ImageSerializer
lookup_field = 'image_id'
...
#urls.py
router.register(r'images', ImageViewSet, basename='image')
Я хочу POST и DELETE image_tags в конечной точке, например :
localhost:8000/my_app/images/IMG_123/image_tags
где: IMG_123 - это изображение
Думаю, для этого мне понадобится отдельный сериализатор и набор просмотра. Но, что более важно, я хочу знать, как добавить такую конечную точку в router
в urls.py
Я ищу что-то вроде этого:
router.register(r'<image>/image_tags', ImageTagViewSet, basename='image_tag')
ПРИМЕЧАНИЕ: я смог чтобы изменить конечную точку изображения, используя его image_id
(вместо ID) из-за lookup_field
в ImageViewSet
, таким образом, может быть:
localhost:8000/my_app/images/IMG_123/