2016-07-08 5 views
-1

DjangoはYAMLのフィクスチャにnode &anchors and *referencesをサポートしていますか?サポートの参照を行い、サードパーティのライブラリPyYAMLとに解析するDjangoはYAMLフィクスチャのノードアンカー(&)と参照(*)を適切にサポートしていますか?

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

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

これは確かにYAML解析ライブラリに依存し、Djangoには依存しません。 –

答えて

1

どれが適切に定義されているかによって異なりますが、このコードはロードされ、groupsの値は[1]になります。

  • ジャンゴuses PyYAML、のみをサポート2005年からYAML 1.1標準ではなく、原始的なスカラーへの言及については、2009年
  • から最新YAML 1.2標準((のほとんど):注意すべき二つの重要な事がありますあなたの例の整数のように)Pythonのデータ表現の参照は失われます。私。 2つの整数値で終わることになり、一方を変更しても他方は変更されず、データ構造をダンプしてもアンカー/参照が再作成されません。
+0

PyYAMLの実装についての詳細はありがとうございます。彼らのドキュメントはかなり変わっていて、どんな種類の変更履歴も見つけられません。 [私の答えは](http://stackoverflow.com/a/38264520/247441)私は基本的にそれを手作業でテストしなければならなかった。 – Tony

+0

私の場合は、参照が失われても大丈夫ですが、とにかくDjango DBには保存されません。彼らの唯一のポイントは、YAML生成段階での反復を減らすことです。 – Tony

0

Djangoの代表者YAMLフィクスチャ:アンカーとリファレンスとYAMLフィクスチャは次のようになりますかの

例。

私の使用例は非常に簡単ですが、プライマリキーの値は、Anjaのインベントリに基づいてJinja2テンプレートからフィクスチャをプログラムで生成する際の反復を避けるのに役立ちます。

関連する問題