0

Ich möchte ein Modell in der Datei setting.py für PUSH_NOTIFICATIONS_SETTINGS in django-push-notifications importieren. Dies ist mein Code:Django-Einstellung - Apps sind noch nicht geladen

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 
} 

Aber es einen Fehler in dieser Zeile erhöhen:

from my_app.models import User 

Der Fehler ist:

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

Wie kann ich my_app Modell in setting.py laden?

Antwort

1

Sie können keine Modelle in Ihrer Einstellungsdatei so laden - Modelle können nur geladen werden, wenn alle Anwendungen geladen sind (was nur passieren kann, nachdem die Einstellungen geladen wurden).

auf dem Code der Suche in django-push-notifications, sollten Sie das Modell als String mit gepunktetem Pfad liefern können:

'USER_MODEL': 'my_app.User' 
1

Sie können nicht User-Modell in den Einstellungen laden, sondern können Sie es

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

Und es später verwenden wie:

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

Und Sie tun können, w hatever du willst mit diesem Benutzermodell