Django 显示从外键关系到自序列化程序的信息

Django 显示从外键关系到自序列化程序的信息,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我有一个模型,其中包含关于同一模型的两个外键。看起来是这样的: class Comment(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) question = models.ForeignKey(Question, on_delete=models.CASCADE, null=True) parent = models.ForeignKey('s

我有一个模型,其中包含关于同一模型的两个外键。看起来是这样的:

class Comment(models.Model):
    user        = models.ForeignKey(User, on_delete=models.CASCADE)
    question    = models.ForeignKey(Question, on_delete=models.CASCADE, null=True)
    parent      = models.ForeignKey('self', related_name='parent_comment', on_delete=models.CASCADE, null=True)
    grandparent = models.ForeignKey('self', related_name='grandparent_comment', on_delete=models.CASCADE, null=True)
    comment     = models.CharField(max_length=200)
    created_at  = models.DateTimeField(auto_now_add=True)
class CommentSerializer(serializers.ModelSerializer):
    author = UserSerializer(source='user')

    class Meta:
        model = Comment
        fields = '__all__'
我想创建一个注释序列化程序,从用户模型中显示父母和祖父母的用户名。我的序列化程序如下所示:

class Comment(models.Model):
    user        = models.ForeignKey(User, on_delete=models.CASCADE)
    question    = models.ForeignKey(Question, on_delete=models.CASCADE, null=True)
    parent      = models.ForeignKey('self', related_name='parent_comment', on_delete=models.CASCADE, null=True)
    grandparent = models.ForeignKey('self', related_name='grandparent_comment', on_delete=models.CASCADE, null=True)
    comment     = models.CharField(max_length=200)
    created_at  = models.DateTimeField(auto_now_add=True)
class CommentSerializer(serializers.ModelSerializer):
    author = UserSerializer(source='user')

    class Meta:
        model = Comment
        fields = '__all__'

我知道我可以做
depth=1
,但是,这只会显示用户id和所有其他有关家长和祖父母评论的信息,但会显示有关这两个字段的用户信息。我该怎么做呢?

你试过这样的东西吗

class CommentSerializer(serializers.ModelSerializer):
    author = UserSerializer(source='user')
    parent = serializers.CharField(source='parent.user.username', read_only=True, default='')
    grandparent = serializers.CharField(source='grandparent.user.username', read_only=True, default='')

    class Meta:
        model = Comment
        fields = '__all__'
class CommentSerializer(serializers.ModelSerializer):
author=UserSerializer(source='user')
parent=serializers.CharField(source='parent.user.username',只读=True,默认值=“”)
祖父母=serializers.CharField(source='祖父母.user.username',只读=True,默认值=“”)
类元:
模型=注释
字段='\uuuu all\uuuu'