Python Django自然键不适用于固定装置?
我在Django的固定装置/自然键方面遇到问题。我想我已经解决了大多数常见问题,如中指定的问题 这可能是一个骗局,因为get_by_natural_键在shell中工作得很好:Python Django自然键不适用于固定装置?,python,django,serialization,fixtures,natural-key,Python,Django,Serialization,Fixtures,Natural Key,我在Django的固定装置/自然键方面遇到问题。我想我已经解决了大多数常见问题,如中指定的问题 这可能是一个骗局,因为get_by_natural_键在shell中工作得很好: >>> artifact = Artifact.objects.get_by_natural_key('PP_0772') >>> artifact <Artifact: PP_0772: Test Artifact> 我的固定装置:图片。yaml - pk: 1 m
>>> artifact = Artifact.objects.get_by_natural_key('PP_0772')
>>> artifact
<Artifact: PP_0772: Test Artifact>
我的固定装置:图片。yaml
- pk: 1
model: collection.picture
fields:
image: /Users/me/images/image.jpg
artifact: PP_0772
title: A great image
- pk: 2
model: collection.picture
fields:
image: /Users/me/images/another_image.jpg
artifact: PP_0775
title: A terrific image
...
错误
因此,当我运行/manage.py loaddata pictures
时,我得到:
DeserializationError: Problem installing fixture 'pictures.yaml':
[u"'PP_0772' value must be an integer."]
原来问题出在我的固定装置上。自然键,我猜,需要在一个列表的形式;当它说,
u“'PP\u 0772'值必须是整数。”
,这有点用词不当。可能是指列表位置
所以,它应该是这样的:
- pk: 1
model: collection.picture
fields:
image: /Users/me/images/image.jpg
artifact:
- PP_0772
title: A great image
- pk: 2
model: collection.picture
fields:
image: /Users/me/images/another_image.jpg
artifact:
- PP_0775
title: A terrific image
...
希望这能帮助有类似困难的人。奇怪的是,你可以将一个自然键作为一个简单的字符串转储,但它必须作为一个元组/列表重新加载。谢谢你弄明白了!
- pk: 1
model: collection.picture
fields:
image: /Users/me/images/image.jpg
artifact:
- PP_0772
title: A great image
- pk: 2
model: collection.picture
fields:
image: /Users/me/images/another_image.jpg
artifact:
- PP_0775
title: A terrific image
...