Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架许多关系字段的列表_Django_Django Rest Framework - Fatal编程技术网

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是只读字段:)

我知道它必须很简单。谢谢你简单易懂的解释。