2

以下を使用して、djangocontrib.authアプリの Group モデルにいくつかのフィールドを追加する必要があります。

field_name = models.CharField(...)
field_name.contribute_to_class(Group, 'field_name')

私の問題は、認証アプリ内の「移行」ディレクトリに作成されているため、サウスで移行を作成しているときです。システムは既に運用されているため、サーバーの現在の django インストールを順番に変更することはできません。移行しauthます。

そのような移行を作成してロードする方法を知っている人はいますか?

よろしくお願いします。

4

2 に答える 2

3

Django では、標準モデルを特に簡単に変更できるわけではありません。Group代わりに新しいモデルを参照する組み込み機能を取得するのは非常に面倒なので、sublass はお勧めしません。

ここで行う通常のことは、一意の外部キーとしてGroupProfileを持つモデルを作成することです。Group洗練されていないかもしれませんが、Django のソース コードを fork することに伴う膨大なメンテナンス オーバーヘッドはありません。

また、サーバー上の Django コードを変更できない場合は、生の SQL ハッカーや巧妙な移行でこれを行うことはできません。South は問題になりません。問題は、Django ORM が、コードで指定されていないフィールドが SQL テーブルに存在することに気づき、例外をスローすることです。

于 2012-05-16T03:52:05.507 に答える
0

モデルにパッチを適用するためにハックを使用するため、手動で移行を作成する必要があると思います。別の移行をコピーして変更してみてください。失敗した場合は、最初に「生のSQL」という名前のオプションが常にありますadd_column:)models

于 2012-05-16T00:06:38.597 に答える