Ich erstelle eine Anwendung mit Django Rest Framework und AngularJs. Ich verwende Django-rest-auth für meine Authentifizierungszwecke, konnte es jedoch nicht einrichten. Wie auch immer, ich versuche diese App mit meinem Projekt einzurichten . Ich erkannte, dass ich django-rest-auth-register installieren muss, um es zum Laufen zu bringen, und befolgte diese Dokumentation , um die folgenden Dinge zu tun:
Ich habe die Befehle ausgeführt
pip install django-rest-auth
und
pip installiere django-allauth
Alle meine settings.py sehen so aus:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 3rd party apps
'rest_framework',
'rest_framework.authtoken',
'rest_auth',
'allauth',
'allauth.account',
'rest_auth.registration',
# My app
'myapp',
]
Ich habe auch die Authentifizierungs-Backends, context_processors und die richtigen URLs hinzugefügt.
Wenn ich jedoch versuche zu migrieren, gibt mein Terminal den folgenden Fehler aus:
RuntimeError: Die Modellklasse django.contrib.sites.models.Site deklariert kein explizites app_label und befindet sich nicht in einer Anwendung in INSTALLED_APPS.
Warum erhalte ich diesen Fehler und wie löse ich ihn, um mein Projekt zu migrieren? Vielen Dank!
quelle
Ich bin über die Google-Suche auf diesen Beitrag gestoßen. Mein Problem war das Ausführen von Tests, die mit dem Fehler explodierten:
RuntimeError: Model class app.taxonomy.models.Term doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Dies lief unter Python 2.7.x mit absoluten Importen. Wie von Colton Hicks in den Kommentaren unten erwähnt, kann dies auch mit Python 3 geschehen (Pytest 3.2.3 mit Django 1.11.4).
In meinem
tests.py
:from __future__ import absolute_import [...] from .models import Demographics, Term
Nachdem der relative Import in einen absoluten Import geändert wurde, verschwand das Problem:
from taxonomy.models import Demographics, Term
HTH
quelle
from .views import LatestAccount
. Der Fehler, den ich bekam, war nicht einmal für ein Modell, das in der Datei tests.py verwendet wurde. Das Entfernen dieses relativen Imports und das Ersetzen durch einen absoluten Import behebt das Problem.Ich habe den Fehler oben bekommen. Mein Problem war jedoch das in der urls.py. Ich folgte PyDanny Ausstecher Django Rezept. Mein Fehler war, in die urls.py diese Zeile einzufügen:
url(r'^demo/', include('project.demoapp.urls', namespace='demoapp')),
als ich das korrigierte:
url(r'^demo/', include('demoapp.urls', namespace='demoapp')),
alles war gut. Ich habe auch meine lokalen Apps geändert (ich habe dies zuerst getan und daher war der kritische Fehler die URL-Fehlkonfiguration):
LOCAL_APPS = [ # Your stuff: custom apps go here 'demoapp.apps.DemoAppConfig', ]
quelle
Fügen Sie einfach
'django.contrib.sites',
aufINSTALLED_APPS
und legen SieSITE_ID = 1
in Ihrersettings.py
Datei.quelle
Versuchen Sie, die
app_label = 'yourApp'
Meta-Klasse in den Modellen hinzuzufügen :class Meta: app_label = 'yourApp'
quelle