我得到了一个模型滑块,它与ImageSlider具有简单的一对多关系,多亏了ModelViewSet,我可以创建滑块,然后创建ImageSlider并将它们与滑块关联。但是我想也希望能够上传一组图像,制作几个幻灯片图像,并将它们与同一个滑块关联,我的意思是我想两个选项都有,但我不确定如何做到这一点,以及如何用类似Postman的东西进行测试。我希望你们能帮助我理解这一点,因为我还在学习DRF
滑块视图
"""Slider view"""
# Django REST Framework
from rest_framework import viewsets
# Serializers
from api.sliders.serializers import SliderModelSerializer
# Models
from api.sliders.models import Slider
class SliderViewSet(viewsets.ModelViewSet):
"""Slider viewset"""
queryset = Slider.objects.all()
serializer_class = SliderModelSerializer
滑块图像视图
"""Slider Images view"""
# Django
from django.shortcuts import get_object_or_404
# Django REST Framework
from rest_framework import viewsets
# Serializers
from api.sliders.serializers import SliderImageModelSerializer
# Models
from api.sliders.models import SliderImage
class SliderImageViewSet(viewsets.ModelViewSet):
"""Slider Image viewset"""
queryset = SliderImage.objects.all()
serializer_class = SliderImageModelSerializer
滑块序列化程序
"""Slider Serializers"""
# Django Rest Framework
from rest_framework import serializers
# Serializers
from api.sliders.serializers import SliderImageModelSerializer
# Model
from api.sliders.models import Slider
class SliderModelSerializer(serializers.ModelSerializer):
""" Slider Model Serializer. """
images = SliderImageModelSerializer(many=True, read_only=True)
class Meta:
"""Meta class"""
model = Slider
fields = (
'id',
'status',
'images',
)
滑块图像序列化程序
"""SliderImage Serializers"""
# Django Rest Framework
from rest_framework import serializers
# Model
from api.sliders.models import SliderImage
class SliderImageModelSerializer(serializers.ModelSerializer):
""" Slider Image Model Serializer. """
slider_id = serializers.IntegerField()
class Meta:
""" Meta class """
model = SliderImage
fields = (
'id',
'url',
'link',
'slider_id',
)
我只关心上传文件和创建/存储资源,ImageSlider中的其他字段不是必需的
您可以使用actions创建另一个端点。 假设已经创建了一个
SliderImage
,它将类似于:SliderImageSerializer
是您的新序列化程序,并且您的端点与注册到SliderImageViewSet
的端点相同,但在末尾是/<id>/images
,其中id
是先前创建的幻灯片图像的id相关问题 更多 >
编程相关推荐