我把所有的Django模型都放在另一个包里,我在Django应用里用pip安装了这个包。
models_package
| - models.py
| - setup.py
在models.py
中我有
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
....
在我的Django应用程序中
my_django_app
| ...
| models.py
website
| ...
| settings.py
manage.py
在my_django_app.model
中,我有
from models_package.models import *
在website.settings.py
中我有
AUTH_USER_MODEL = "my_django_app.User"
但是当我运行python manage.py runserver
时,我得到:
RuntimeError: Model class my_django_app.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
这个东西是User
,它来自models_packages.models
,models_packages
不是我在settings.py中添加到INSTALLED_APP
的Django应用程序。它只是一个包含我在多个不同Django应用程序中需要的所有共享模型的包。
有没有办法在models_package.models
中使用模型,而不将其添加到website.settings.py
中的INSTALLED_APP
1条答案
按热度按时间lskq00tm1#
我认为你需要把你的'my_django_app'转换成一个django app:
所有你需要做的是添加app.py到my_django_app包里面
然后可以将其添加到INSTALLED_APP