私は自分のプロジェクトでさまざまなオープンソースのアプリケーションを使用しようとしています。問題は、独自のモデル定義で2つの異なるアプリケーションで使用されているモデル名が同じであることです。Django:モデル名の衝突
私が使用してみました:
class Meta:
db_table = "db_name"
をそれはうまくいきませんでした。私はまだsyncdbでフィールド名の衝突のエラーを取得しています。助言がありますか。
更新
私は実際にPinaxとサッチモを統合しようとしています。エラーは次のとおりです。
Error: One or more models did not validate:
contact.contact: Accessor for field 'user' clashes with related m2m field 'User.contact_set'. Add a related_name argument to the definition for 'user'.
friends.contact: Accessor for m2m field 'users' clashes with related field User.contact_set'. Add a related_name argument to the definition for 'users'.
テーブル名は既に一意です。私はモデルを分析し、Model 'Contact'は2つの異なるアプリケーションの2つのモデルにあります。これらのモデルの1つをコメントアウトすると、うまく動作します。
両方のアプリがPYTHON_PATHにあり、他のアプリが同じ名前のモデルを定義するとクラッシュが発生するため、エラーが発生する可能性があります。
確かに、さまざまなアプリのアプリラベルは競合のリスクを軽減するはずです。エラーの詳細を教えてください。 –
Yepp、dbテーブルのパターンは " _ "となり、競合は起こりにくいでしょう。少なくとも私はPostgreSQLで見ているものです。 失敗したsyncdb実行の実際のoutpoutなど、より多くのデータを入力してください –
Ber
アプリケーションを2回追加しましたか?実際のエラーメッセージに加えて、settings.pyからINSTALLED_APPS設定を投稿してください。 –