简体   繁体   English

如何从同一模型序列化外键

[英]How to serialize a foreign key from the same model

I have this model: 我有这个模型:

class Player(models.Model):
    name = models.CharField(max_length=100)
    partner = models.ForeignKey('self', blank=True, null=True)

And in my serializer I have this: 在我的序列化器中,我有:

class PlayerSerializer(serializers.ModelSerializer):
    partner = PlayerSerializer()
    class Meta:
        model = Player
        fields = ('id', 'name', 'partner')

But of course this returns an error saying PlayerSerializer is not defined. 但是,当然这会返回一条错误消息,说明未定义PlayerSerializer

How do I serialize the foreign key. 如何序列化外键。

I am using Django with REST API. 我正在使用带有REST API的Django。 Django 1.10 and python 3.6.3 Django 1.10和python 3.6.3

Try to use depth option instead: 尝试改用depth选项:

class PlayerSerializer(serializers.ModelSerializer):
    class Meta:
        model = Player
        fields = ('id', 'name', 'partner')
        depth = 1

Just add depth = 1 in Meta, as below 只需在Meta中添加depth = 1 ,如下所示

class PlayerSerializer(serializers.ModelSerializer):
    class Meta:
        model = Player
        fields = ('id', 'name', 'partner')
        depth = 1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM