get_or_create()
関数がフォーム内にあるため、新しいデータベースでdjango移行を実行する際に問題があります。Django:フォーム内のオブジェクト参照のために移行できません
form.py
class EmployeeForm(...):
# Make sure that we have a directory before initializing the form
default_upload_directory = Directory.objects.get_or_create(name='Employee', parent=None)[0]
これは私が書いたカスタムフォームの重要な部分です。 Employeeのアップロードされたファイルをデフォルトのディレクトリにリンクします。移行以外はすべて正常に動作します。私が新しいデータベースでそれを実行すると、それはdjango.db.utils.OperationalError: no such table: filemanager_directory
と文句を言うでしょう。また、標準objects.get(..)
を使用してDirectoryオブジェクトにアクセスすると発生します。
これを解決する方法がわかりません。明らかにテーブルは存在しません。既存のデータベースで、テーブルがすでに配置されていれば、すべて正常に動作します。
編集:私が実行しようとしている移行は、このアプリケーションに関連していません。さらに、回避策として、行をコメントアウトして移行を実行し、それを再開することもできます...しかし、これは純粋な解決策ではありません...
なぜフォームにオブジェクトを作成しようとしていますか? – Pythonista
このフォームは、すべてのアップロードが事前に定義する必要のある特定のディレクトリオブジェクトに接続することを保証します。 – Max