[英]Serializers Django
您好我想通过序列化器连接两个模型。 我有一个连接,它工作得很好,因为主键属于 UsuarioDetailSerializer,外键属于 ComentarioSerializer。
class ComentarioSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
fields = ['id', 'contenido_comentario','fecha_comentario',]
model = Comentarios
class HabilidadSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
fields = ['id', 'nombre_habilidad',]
model = Habilidad
class UsuarioDetailSerializer(serializers.ModelSerializer):
detail = serializers.SerializerMethodField()
usuario_comentado = ComentarioSerializer(many=True)
habilidad = HabilidadSerializer()
class Meta:
model = Usuario
fields = [
'id',
'id_usuario',
'nombre_usuario',
'apellido_usuario',
'descripcion_usuario',
'direccion_usuario',
'foto_usuario',
'detail',
'usuario_comentado',
'habilidad',
]
def get_detail(self, obj):
return reverse('usuario_detail',args=(obj.pk,))
我想做的另一个连接是在序列化器 UsuarioDetailSerializer 和 HabilidadSerializer 之间,但我不能这样做,因为主键属于 HabilidadSerializer,外键属于 UsuarioDetailSerializer,我不知道如何解决这个问题。 我想将 HabilidadSerializer 中的数据显示到 UsuarioDetailSerializer 中。
一旦尝试这个。
class UsuarioDetailSerializer(serializers.ModelSerializer):
detail = serializers.SerializerMethodField()
usuario_comentado = ComentarioSerializer(many=True)
habildad = serializers.PrimaryKeyRelatedField(queryset=habilidad.objects.all())
class Meta:
model = Usuario
fields = [
'id',
'id_usuario',
'nombre_usuario',
'apellido_usuario',
'descripcion_usuario',
'direccion_usuario',
'foto_usuario',
'detail',
'usuario_comentado',
'habilidad',
]
def get_detail(self, obj):
return reverse('usuario_detail',args=(obj.pk,))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.