0

我想在 setting.py 中为django-push-notifications中的 PUSH_NOTIFICATIONS_SETTINGS 导入应用程序模型。这是我的代码:

INSTALLED_APPS = (
    ....
    'my_app',
    'push_notifications'
    ....
)

from my_app.models import User

PUSH_NOTIFICATIONS_SETTINGS = {
    'GCM_API_KEY': 'xxxxx',
    'APNS_CERTIFICATE': 'xxxxx.pem',
    'USER_MODEL': User,  # i want to change the default from auth_user to my_app User
}

但它在这一行引发了一个错误:

from my_app.models import User

错误是:

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

如何在 setting.py 中加载 my_app 模型?

4

2 回答 2

1

您不能像那样从设置文件中加载模型 - 模型只能在加载所有应用程序后加载(这只能在加载设置后发生)。

查看 中的代码django-push-notifications,您应该能够将模型提供为带有虚线路径的字符串:

'USER_MODEL': 'my_app.User' 
于 2016-04-15T05:46:25.963 回答
1

您无法在设置中加载用户模型,但您可以更改它

PUSH_NOTIFICATIONS_SETTINGS = {
    'GCM_API_KEY': 'xxxxx',
    'APNS_CERTIFICATE': 'xxxxx.pem',
    'USER_MODEL': 'my_app.User',  
}

并在以后使用它:

from django.apps import apps
from django.conf import settings
User = apps.get_model(settings.PUSH_NOTIFICATIONS_SETTINGS['USER_MODEL'])

你可以用这个用户模型做任何你想做的事情

于 2016-04-15T05:48:17.260 回答