【发布时间】:2019-11-10 04:28:00
【问题描述】:
我的数据是这样的,我想序列化它们而不为它们创建模型。
[
{'form': 1, 'count': 1},
{'form': 2, 'count': 3}
]
序列化到
[
{'form': 'my form name 1', 'count': 1},
{'form': 'my form name 2', 'count': 3}
]
我想用序列化器对其进行序列化,通过pk获取form name form model。
class EavForm(models.Model):
name = models.CharField(max_length=300)
order = models.IntegerField(default=1)
# serializer
class CustomSerializer(serializers.Serializer):
form = serializers.PrimaryKeyRelatedField(queryset=EavForm.objects.all())
count = serializers.IntegerField()
一些错误,例如'int' object has no attribute 'pk'
在python控件中测试
d = [{'form': 1, 'count': 1}, {'form': 2, 'count': 1}]
s = CustomSerializer(d, many=True)
print(s.data)
# error
Traceback (most recent call last):
File "backend/src/db_tools/del1.py", line 25, in <module>
print(s.data)
File "backend/lib/python3.7/site-packages/rest_framework/serializers.py", line 768, in data
ret = super(ListSerializer, self).data
File "backend/lib/python3.7/site-packages/rest_framework/serializers.py", line 262, in data
self._data = self.to_representation(self.instance)
File "backend/lib/python3.7/site-packages/rest_framework/serializers.py", line 686, in to_representation
self.child.to_representation(item) for item in iterable
File "backend/lib/python3.7/site-packages/rest_framework/serializers.py", line 686, in <listcomp>
self.child.to_representation(item) for item in iterable
File "backend/lib/python3.7/site-packages/rest_framework/serializers.py", line 530, in to_representation
ret[field.field_name] = field.to_representation(attribute)
File "backend/lib/python3.7/site-packages/rest_framework/relations.py", line 272, in to_representation
return value.pk
AttributeError: 'int' object has no attribute 'pk'
【问题讨论】:
-
这样的错误?为什么不发布带有完整回溯的实际错误?
-
好的,我把它们都贴在上面了。
标签: python django django-rest-framework django-serializer