我的序列化程序中有展开字段。我发出请求
api/drivers/?expand=tractors\uuuuuu drivers\uuuuuu driver并获取错误:
“试图获取序列化程序TractorSerializer
上的字段make
的值时,获取了AttributeError。
序列化程序字段的名称可能不正确,并且与TractorDriver
实例上的任何属性或键都不匹配。
原始异常文本为:“TractorDriver”对象没有属性“make”
型号:
class Tractor(BaseModel):
...
make = models.CharField("Make", max_length=32)
...
class TractorDriver(BaseModel):
tractor = models.ForeignKey(
Tractor,
verbose_name="Tractor",
on_delete=models.CASCADE,
related_name="drivers",
)
driver = models.ForeignKey(
Driver,
verbose_name="Driver",
on_delete=models.CASCADE,
related_name="tractors",
)
...
序列化程序:
class DriverSerializer(BaseModelSerializer):
class Meta:
model = Driver
expandable_fields = dict(
...
tractors=dict(
serializer="safety.api.serializers.TractorSerializer", many=True,
),
...
class TractorDriverSerializer(BaseModelSerializer):
class Meta:
model = TractorDriver
expandable_fields = dict(
tractor=dict(serializer="safety.api.serializers.TractorSerializer", read_only=True),
driver=dict(serializer="safety.api.serializers.DriverSerializer", read_only=True),
)
class TractorSerializer(BaseModelSerializer):
class Meta:
model = Tractor
expandable_fields = dict(
...
drivers=dict(
serializer="safety.api.serializers.TractorDriverSerializer", many=True,
),
...
观点:
class DriverStatusViewSet(BaseModelViewSet):
queryset = DriverStatus.objects.all()
serializer_class = DriverStatusSerializer
class TractorViewSet(BaseModelViewSet):
queryset = Tractor.objects.all()
serializer_class = TractorSerializer
class TractorDriverViewSet(BaseModelViewSet):
queryset = TractorDriver.objects.all()
serializer_class = TractorDriverSerializer
TractorDriver
实例没有make
字段Tractor
实例包含make
字段。
我不明白为什么它试图在TractorDriver
实例中查找make
字段
目前没有回答
相关问题 更多 >
编程相关推荐