我正在跟踪情况,我无法弄清楚以下使用rest_framework的代码如何工作。我查看了文档,但在那里找不到太多帮助。 (此代码来自django教程,但此处未提供任何信息)
这是模型:
class Tweet(models.Model):
parent = models.ForeignKey("self",blank=True,null=True,on_delete=models.CASCADE)
user = models.ForeignKey(Profile,on_delete=models.CASCADE)
content = models.CharField(max_length=140,validators=[validate_content])
timestamp = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now_add=True)
和序列化器:
class TweetModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True) #write_only
date_display = serializers.SerializerMethodField()
timesince = serializers.SerializerMethodField()
parent = ParentTweetModelSerializer(read_only = True)
class Meta:
model = Tweet
fields = [
'id',
'user',
'content',
'timestamp',
'date_display',
'timesince',
'parent'
]
// other lines of code
class ParentTweetModelSerializer(serializers.ModelSerializer):
user = UserDisplaySerializer(read_only=True) #write_only
date_display = serializers.SerializerMethodField()
timesince = serializers.SerializerMethodField()
因此parent是我原始Tweet模型中的一个字段,但是当我使用序列化程序覆盖或替换字段“ parent”时,ParentTweetModelSerializer如何确定与哪个Tweet相关的TweetModelSerializer的tweet,而无需我们传递任何数据(因为我们没有在ParentTweetModelSerializer()中传递任何内容?
在rest_framework的文档中找不到与之相关的任何内容。