私は現在使用してDjango==1.7.1
います。同じモジュール名の再利用可能なアプリがいくつかあります。これにより、モデルのアプリ ラベルも同じになります。これは実際には矛盾しています。INSTALLED_APPS
ファイル内の異なるライブラリで同じ名前の両方のモジュールを使用することはできませんsettings
。
モジュールに を追加してこれを解決し、AppConfig
それらのラベル (app_label) を変更して競合を解決しました。
#librarayX.my_module.apps.py
from django.apps import AppConfig
class ModuleAppConfig(AppConfig):
name = 'libraryX.my_module'
label = "X_my_module"
verbose_name = "my_module"
#librarayY.my_module.apps.py
from django.apps import AppConfig
class ModuleAppConfig(AppConfig):
name = 'libraryY.my_module'
label = "Y_my_module"
verbose_name = "my_module"
#settings.py
....
INSTALLED_APPS=[
...
'libraryX.my_module.apps.ModuleAppConfig',
'libraryY.my_module.apps.ModuleAppConfig',
...
]
...
INSTALLED_APPS
これで、これらのアプリ構成をモジュールではなくmy に追加できます。競合は解決されるだけです。その時点まではすべて問題ありません。
これが私の問題です。のラベルをオーバーライドするとAppConfig
、そのモジュール内のモデルが によって検出されませんDjango
。走ると・・・
python manage.py makemigrations
何も変わっていないようです。すべての移行ファイルを削除しても、最初の移行ファイルは作成されませんでした。私は、それはモデルを見ていないと思います。アプリ構成から上書きされたラベル フィールドを削除するたびに、モデルは再び検出可能になります。したがって、私のモデルの場所が間違っているとは思わないでください。
これもバグかもしれませんが、わかりません。しかし、私が何か間違ったことをしている場合、それは何でしょうか?
ありがとう!