假设我有一个模型类,
class Estudiante(models.Model):
nombre = models.CharField(..)
...
class Invitado(models.Model):
invitadoi = models.ForeignKey(Estudiante)
...
class Respuesta(models.Model):
nombrer = models.ForeignKey(Invitado, related_name="invitado")
...
如何创建一个Respuesta
序列化程序并在json结果中获取nombre
模型的Estudiante
字段?
答案 0 :(得分:1)
在序列化程序中使用 source='nombrer.invitadoi.nombre'
,
class RespuestaSerializer(serializers.ModelSerializer):
nombre = serializers.CharField(source='nombrer.invitadoi.nombre')
class Meta:
fields = ('nombre',) # other fields
model = Respuesta
答案 1 :(得分:0)
您可以尝试这样:
class RespuestaSerializer(serializers.ModelSerializer):
nombre_estudiante = serializers.SerializerMethodField()
def get_nombre_estudiante(self, obj):
if obj.nombrer and obj.nombrer.invitadoi:
return obj.nombrer.invitadoi.nombre
class Meta:
model = Respuesta
fields = ['nombre_estudiante']