Я следую за случаем, я не могу понять, как работает следующий код, который использует 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()
Итак, родительэто поле в моей исходной модели Tweet, но когда я использую Serializer для переопределения или замены поля «parent», как ParentTweetModelSerializer может определить, с каким родительским твитом связан твит TweetModelSerializer, и мы не передали ему никаких данных (как мы не передаличто-нибудь в ParentTweetModelSerializer ()?
Мне не удалось найти что-либо связанное с этим в документации rest_framework.