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'