Django框架视图没有';t使用嵌套序列化程序显示多对一类型
您好,我正在尝试使用django Rest框架创建Rest API,但是在发出post请求后,按照文档到嵌套序列化程序放置自定义类值get请求向我显示,当我正确执行post时,它是空的 这是我的模特课: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
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的列表,但也许我错了,如果你能澄清这一点,我将不胜感激
谢谢大家,问题是我在序列化程序的字段中使用了()而不是[]。使用[]我可以列出它们