我目前正在使用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
而不是模块中。冲突刚刚解决。在那之前一切都很好。
这是我的问题;当我覆盖 的标签时AppConfig
,我在该模块中的模型不会被Django
. 当我跑步时;
python manage.py makemigrations
似乎什么都没有改变。尽管我删除了所有迁移文件,但它甚至没有创建初始文件。我认为,它没有看到模型。每当我从我的应用程序配置中删除覆盖的标签字段时,模型就会再次被发现。所以,不要认为我的模型位置是错误的。
这也可能是错误,我不知道。但是,如果我做错了什么,那会是什么?
谢谢!