gpt4 book ai didi

python - 嵌套序列化程序显示反向时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:07 26 4
gpt4 key购买 nike

我定义了这个模型:

class city (models.Model):
city_name = models.CharField(max_length=100)
state = models.ForeignKey(state,related_name='state', on_delete=models.CASCADE)

def __str__(self):
return self.city_name

和这个序列化器:

class citySerializers(serializers.ModelSerializer):
class Meta:
model = city
fields = ('city_name')

如果我将状态添加到序列化器字段中,它会显示表的 state_id,但我希望它显示 state_name(状态表的另一个字段)我找到了这个教程:https://www.django-rest-framework.org/api-guide/relations/但这里父模型内部显示子模型项目,我想在子模型内部显示父名称(与教程相反)我该怎么办?

最佳答案

像这样定义你的序列化器:

class citySerializers(serializers.ModelSerializer):
state = serializers.SerializerMethodField()
class Meta:
model = city
fields = ('city_name', 'state')
def get_state(self, instance):
return instance.state.state_name

DRF documentation on SerializerMethodField

请记住,如果您尚未预取相关状态,则使用此方法将导致对数据库进行额外查询以从状态表中获取 state_name。

关于python - 嵌套序列化程序显示反向时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53513590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com