问题是:当我将someModelSerializer.data
作为anotherModelSerializer
的嵌套数据传递时,然后我将anotherModelSerializer.data
传递给Response
,在响应中我只看到SomeModel
的两个字段,而不是5。但是当我将someModelSerializer.data
直接传递给Response
时,我可以看到所有的模型字段都存在。你知道吗
详情如下。你知道吗
我有翻译历史模型
class TranslationHistory(models.Model):
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
string = models.CharField(max_length=255)
count = models.IntegerField(default=1)
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='translation_history')
它是TranslationHistorySerializer
class TranslationHistorySerializer(serializers.ModelSerializer):
class Meta:
model = TranslationHistory
user = serializers.PrimaryKeyRelatedField(read_only=True, default=None)
count = serializers.IntegerField(read_only=True)
def validate_user(self, value):
return self.context['request'].user
def update(self, instance, validated_data):
instance.count += 1
instance.save()
return instance
我还有一个虚拟实体翻译,它不是模型。它有自己的序列化程序。你知道吗
class TranslationSerializer(serializers.Serializer):
translation_history = TranslationHistorySerializer() # nested serializer
translation = serializers.CharField()
在我看来,如果我喜欢这个
history = TranslationHistory().findByUserAndString(request.user, string)
historySerializer = TranslationHistorySerializer(history)
return Response(historySerializer.data, status=status.HTTP_200_OK)
我有这样的反应。你知道吗
{
"id": 18,
"user": 1,
"count": 72,
"created": "2015-07-15T15:35:50.751219Z",
"updated": "2015-07-24T15:37:04.247469Z",
"string": "hello"
}
但是如果在我看来我喜欢这个
history = TranslationHistory().findByUserAndString(request.user, string)
historySerializer = TranslationHistorySerializer(history)
serializer = TranslationSerializer(
data={
'translation_history': historySerializer.data,
'translation': 'hello'
},
context={'request': request}
)
serializer.is_valid(raise_exception=True)
return Response(serializer.data, status=status.HTTP_200_OK)
我有这样的反应。你知道吗
{
"translation_history": {
"user": 1,
"string": "hello"
},
"translation": "hello"
}
为什么在这种情况下我只得到user和string字段?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐