Django rest框架许多关系字段的列表
我试图创建一个应用程序,允许我上传我的作品,也有一个旋转木马的一个子集,这些艺术品。我想有一个旋转木马对象,我为它选择图像Django rest框架许多关系字段的列表,django,django-rest-framework,Django,Django Rest Framework,我试图创建一个应用程序,允许我上传我的作品,也有一个旋转木马的一个子集,这些艺术品。我想有一个旋转木马对象,我为它选择图像 from django.db import models from artwork.models import Artwork # Carousel Model references the artworks in a many to many field class Carousel(models.Model): carouseltitle = models.
from django.db import models
from artwork.models import Artwork
# Carousel Model references the artworks in a many to many field
class Carousel(models.Model):
carouseltitle = models.CharField(max_length=200,)
artwork = models.ManyToManyField(Artwork)
class Meta:
verbose_name = 'Carousel'
verbose_name_plural = 'Carousels'
def __str__(self):
return self.carouseltitle
在我的序列化程序中,非常简单地创建我想要的内容,除了拉取Artwork字段:
from rest_framework import serializers
from .models import Carousel
from artwork.models import Artwork
class CarouselSerializer(serializers.ModelSerializer):
id = serializers.ReadOnlyField()
class Meta:
model = Carousel
fields = ('id', 'carouseltitle', 'artwork')
我的看法是:
from django.shortcuts import render
from .models import Carousel
from .serializers import CarouselSerializer
from rest_framework import generics
# Create your views here.
class CarouselListCreate(generics.ListCreateAPIView):
queryset = Carousel.objects.all()
serializer_class = CarouselSerializer
创建此输出:
[
{
"id": 7,
"carouseltitle": "Home",
"artwork": [
2,
4,
6
]
}
]
对于artwork list,我想列出artwork中的字段,例如图像和标题的url,而不仅仅是PK。在我的生命中,我尝试的每件事都会给我错误。有谁能引导我走上正确的方向吗?您需要为艺术品创建一个ModelSerializer,然后在您的
转盘序列化器中使用它:
类ArtworksSerializer(serializers.ModelSerializer):
类元:
模型=艺术品
字段=艺术品\u字段\u到\u显示
类CarouselSerializer(serializers.ModelSerializer):
artwork=ArtworkSerializer(多个=真)
类元:
模型=旋转木马
字段=('id','Carousettle','artwork')
您也不需要声明ID是只读字段:)我知道它必须很简单。谢谢你简单易懂的解释。