Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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框架视图没有';t使用嵌套序列化程序显示多对一类型_Django_Api_Django Rest Framework - Fatal编程技术网

Django框架视图没有';t使用嵌套序列化程序显示多对一类型

Django框架视图没有';t使用嵌套序列化程序显示多对一类型,django,api,django-rest-framework,Django,Api,Django Rest Framework,您好,我正在尝试使用django Rest框架创建Rest API,但是在发出post请求后,按照文档到嵌套序列化程序放置自定义类值get请求向我显示,当我正确执行post时,它是空的 这是我的模特课: from django.db import models # Create your models here. class Pista(models.Model): color = models.CharField(max_length=10) km_pista = mod

您好,我正在尝试使用django Rest框架创建Rest API,但是在发出post请求后,按照文档到嵌套序列化程序放置自定义类值get请求向我显示,当我正确执行post时,它是空的

这是我的模特课:

from django.db import models


# Create your models here.

class Pista(models.Model):
    color = models.CharField(max_length=10)
    km_pista = models.FloatField(default=0)

    def __str__(self):
        return '{}'.format(self.color)


class Forfait(models.Model):
    precio = models.FloatField(default=0)
    edad = models.IntegerField(default=0)

    def __str__(self):
        return '{}'.format("Precio " + str(self.precio) + ' edad ' + str(self.edad))


class Estacion(models.Model):
    nombre = models.CharField(max_length=30)
    ciudad = models.CharField(max_length=15)
    pais = models.CharField(max_length=20)
    descripcion = models.CharField(max_length=300)
    pistas = models.ForeignKey(Pista, on_delete=models.CASCADE, null=True)
    forfaits = models.ForeignKey(Forfait, on_delete=models.CASCADE, null=True)
    km_esquiables = models.FloatField(default=0)

    def __str__(self):
        return '{}'.format(self.nombre)
我的序列化程序:

class PistaSerializer(serializers.ModelSerializer):
    class Meta:
        model = Pista
        fields = ('color', 'km_pista')


class ForfaitSerializer(serializers.ModelSerializer):
    class Meta:
        model = Forfait
        fields = ('precio', 'edad')


class EstacionSerializer(serializers.ModelSerializer):
    pistas = PistaSerializer(read_only=True, many=True)
    forfaits = ForfaitSerializer

    class Meta:
        model = Estacion
        fields = ('nombre', 'ciudad', 'pais', 'descripcion',
                  'pistas', 'forfaits', 'km_esquiables')
        depth = 1

我的看法:

class EstacionViewSet(viewsets.ModelViewSet):
    queryset = Estacion.objects.all()
    serializer_class = EstacionSerializer
和网址:

router = routers.DefaultRouter()
router.register(r'estaciones', views.EstacionViewSet)

urlpatterns = [
    path('', include(router.urls)),

]
我认为多对多是最好的表达方式,因为我希望在每一站都有一份Pista的列表,但也许我错了,如果你能澄清这一点,我将不胜感激


谢谢大家,问题是我在序列化程序的字段中使用了()而不是[]。使用[]我可以列出它们