削除したSnippetChooserBlockに基づいてストリームフィールドブロックを作成しましたが、これは問題ありません。Streamfieldブロックを削除するときにWagtail Migrationエラーが発生しました。
AttributeError: 'module' object has no attribute 'CallToActionSnippet'
すべてのアイデアは、私がここで間違って何をやっている:古い移行ファイルからmakemigrationsを実行しているとき、私はその後、その後、また私のモデルからCallToActionSnippetを削除しようとした
('call_to_action_snippet', SnippetChooserBlock(CallToActionSnippet,icon="success",template='myapp/blocks/cta_snippet.html')),
、私はエラーを取得します? SFカスタムブロックは特定のブロックタイプに基づいている場合は削除できませんが、SnippetChooserBlockは問題ありません。
ジョス
ありがとう、どういう意味なのか分かります。私はおそらく、現時点ではデータがないので、すべての移行を削除し、モデルから最初から開始するつもりです。私はこれを避けていたかもしれませんが、その前から、私はこの間違いをもう一度しません。モデルでスニペットを参照するときに、その時点でappname.modelname文字列を使用する必要がありますか? – joss
確かに。 StreamField定義で 'SnippetChooserBlock(CallToActionSnippet)'を使うと、 'SnippetChooserBlock( 'core.CallToActionSnippet')を使って' wagtail.wagtailsnippets.blocks.SnippetChooserBlock(yourapp.snippets.CallToActionSnippet) 'が生成され、' wagtail.wagtailsnippets.blocks 'が生成されます。 SnippetChooserBlock( 'core.CallToActionSnippet') 'これはインポートエラーを引き起こさないでしょう。 –