Django是否在YAML灯具中充分支持节点锚(&)和引用(*)?

时间:2016-07-08 06:20:13

标签: django yaml django-fixtures

Django是否支持YAML灯具中的node &anchors and *references

具有锚点和引用的YAML夹具的示例如下:

- model: auth.group
  pk: &somegroup 1
  fields:
    name: "some group"

- model: auth.user
  pk: 1
  fields:
    groups: [*somegroup]
    username: someuser

2 个答案:

答案 0 :(得分:1)

这完全取决于你如何充分定义,但是这个代码将加载,Python中groups的值将是列表[1]。有两件事需要注意:

  • Django uses PyYAML,它仅支持(大部分)2005年的YAML 1.1标准,而不是2009年的最新YAML 1.2标准。
  • 对于原始标量的引用(如示例中的整数),Python中数据表示中的引用将丢失。即你将得到两个整数值,改变一个不会改变另一个,也不会转储数据结构重新创建锚/引用。

答案 1 :(得分:0)

Django将YAML fixture解析委托给第三方库 PyYAML ,它支持引用。

加载带引用的灯具似乎对我来说很好,虽然我的用例很简单 - 只是主键值,有助于避免在基于Ansible库存以编程方式从Jinja2模板生成灯具时重复。

相关问题