Django -从已安装的包导入模型

jjjwad0x  于 2022-12-24  发布在  Go
关注(0)|答案(1)|浏览(144)

我把所有的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.modelsmodels_packages不是我在settings.py中添加到INSTALLED_APP的Django应用程序。它只是一个包含我在多个不同Django应用程序中需要的所有共享模型的包。
有没有办法在models_package.models中使用模型,而不将其添加到website.settings.py中的INSTALLED_APP

lskq00tm

lskq00tm1#

我认为你需要把你的'my_django_app'转换成一个django app:
所有你需要做的是添加app.py到my_django_app包里面

from django.apps import AppConfig

class ApiConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'my_django_app'

然后可以将其添加到INSTALLED_APP

相关问题