0

アプリケーション内にいくつかのモデルを定義しました。これを「ブログ」と呼びます。

djangoproject
    /blog
        models.py

モデルの場所を変更したいと思います。たとえば、ここに配置します。

djangoproject
    /blog
        xxx
    /all_models
        models.py

コードの観点からは、これはかなり些細なことですが、Django と South が作成したすべてのテーブルが と呼ばれるようになったため、データベースに問題があると思いますblog_posts blog_comments.Django はこの命名規則に依存しており、.データベースにすでに存在するデータ。

これを行う方法?

4

2 に答える 2

4

最も簡単な方法は、わざわざテーブルを変更するのではなく、コードを変更することです。各モデルのクラス内にMeta宣言を入れるdb_table = "blog_tablename"と、Django は問題なくそれらを見つけます。

于 2013-09-23T15:04:08.517 に答える
1

これは 2 つの方法で解決できます。最初の簡単な方法は、各モデルの Meta クラスに db_table を提供することです。もう 1 つは、変更を適用するための移行を作成することです。

私の知る限り、南はテーブルの名前変更をサポートしていないため、3 つの方法で移行する必要があります。

  • モデルを移動し、移行を作成します (これで、古いテーブルと新しいテーブルの両方ができました)
  • データ移行を作成し、以前のテーブルを反復処理し、オブジェクトを後でコピーします
  • 以前のモデルを削除し、その移行を作成します。

South docs で2 番目の方法についてもう少し詳しく読むことができます

于 2013-09-23T16:31:02.570 に答える