1

related_name 関連の多くの問題で失敗します。もちろん、実際の開発サーバーを (で./manage.py runserver) 実行している場合、これは起こりません。モデルが 2 回生成されているのではないでしょうか? 私はpsycopg2 2.4.1を実行しています。これが私のテスト出力です:

(venv)lacrymology@Roller:boilerplate$ ./manage.py test
Creating test database for alias 'default'...
Error: One or more models did not validate:
l10n.address: Accessor for field 'user_shipping' clashes with related field 'User.shipping_address'. Add a related_name argument to the definition for 'user_shipping'.
l10n.address: Reverse query name for field 'user_shipping' clashes with related field 'User.shipping_address'. Add a related_name argument to the definition for 'user_shipping'.
l10n.address: Accessor for field 'user_billing' clashes with related field 'User.billing_address'. Add a related_name argument to the definition for 'user_billing'.
l10n.address: Reverse query name for field 'user_billing' clashes with related field 'User.billing_address'. Add a related_name argument to the definition for 'user_billing'.
custom_registration.profile: Accessor for field 'user' clashes with related field 'User.profile'. Add a related_name argument to the definition for 'user'.
custom_registration.profile: Reverse query name for field 'user' clashes with related field 'User.profile'. Add a related_name argument to the definition for 'user'.
addressmodel.address: Accessor for field 'user_shipping' clashes with related field 'User.shipping_address'. Add a related_name argument to the definition for 'user_shipping'.
addressmodel.address: Reverse query name for field 'user_shipping' clashes with related field 'User.shipping_address'. Add a related_name argument to the definition for 'user_shipping'.
addressmodel.address: Accessor for field 'user_billing' clashes with related field 'User.billing_address'. Add a related_name argument to the definition for 'user_billing'.
addressmodel.address: Reverse query name for field 'user_billing' clashes with related field 'User.billing_address'. Add a related_name argument to the definition for 'user_billing'.
profiles.profile: Accessor for field 'user' clashes with related field 'User.profile'. Add a related_name argument to the definition for 'user'.
profiles.profile: Reverse query name for field 'user' clashes with related field 'User.profile'. Add a related_name argument to the definition for 'user'.
4

2 に答える 2

1

test.py が INSTALLED_APP 内にないアプリをインポートする可能性が高いですが、衝突したモデルを指すモデル フィールドがいくつかあります。test.pyにインポートされているが INSTALLED_APPS 内にはインポートされていないアプリ内でuser_shippingを grep して、置き換えてみてください。

./manage.py validateによって内部的に呼び出される は./manage.py runserver、INSTALLED_APP 内のアプリからロードされたモデルのみをチェックするため、devserver を実行したときにエラーは発生しませんでした。ただし、test.py 内のインポートにより、インストールされていないアプリの余分なモデルがあればそれが読み込まれ、衝突が発生します。

于 2012-04-08T10:26:04.010 に答える
0

このコメントで説明されているように、これは django-shop テストの問題でした:テスト データベースの作成時に Django テストが失敗する

./manage.py test myappアプリのコードを変更せずにそれを回避する方法を見つけることができなかったので、自分のアプリをテストするだけになりました(./manage.py test

于 2014-01-08T14:17:05.040 に答える