2

syncdb に特定のテーブルを無視させる方法はありますか?

M2M を 2 回宣言することにしたのは、1 つのモデルから、filter_horizo​​ntal で動作する単純な M2M として表示したかったからです。別の例では、スルー フィールドを追加してインラインで表示しました。私は db_table を使用して、単純なものが同じスルーテーブルを使用するようにしました。通常、これはすべてうまく機能しますが、syncdb では、テーブルを 2 回作成する必要があると考えているため、最初の実行で常にエラーが発生しますが、2 回目は既に存在します。テストデータベースを作成して失敗するテストに到達するまでは問題ありません。たぶん、私はこのハックを使用するだけのばかです。とにかく、Django にこのエラーを無視させるか、テーブルを介して m2m を 2 回目に作成しないように指定する方法はありますか?

4

1 に答える 1

2

Model Meta オプション managed = False を使用して、syncdb がモデルを無視するようにしました。次に、最初のSQLデータを使用して、テーブルのSQLを手動で作成しました。manytomany フィールドのみを管理しないように django に伝えることができれば、カスタム SQL を記述する必要はありませんが、これは実行できません。

于 2011-09-13T01:40:40.463 に答える