Python Django自然键不适用于固定装置?

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

我在Django的固定装置/自然键方面遇到问题。我想我已经解决了大多数常见问题,如中指定的问题

这可能是一个骗局,因为get_by_natural_键在shell中工作得很好:

>>> 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
...