je suis nouveau à Django et je reçois cette erreur du sud mais je ne sais pas ce qui me manque. Je recherche des réponses mais je ne trouve rien.
There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.
Voici mes paramètres de base:
from unipath import Path
BASE_DIR = Path(__file__).ancestor(3)
SECRET_KEY = 'pp@iz7%bc7%+*11%usf7o@_e&)r2o&^3%zjse)n=6b&w^hem96'
Django_APPS = (
'Django.contrib.admin',
'Django.contrib.auth',
'Django.contrib.contenttypes',
'Django.contrib.sessions',
'Django.contrib.messages',
'Django.contrib.staticfiles',
)
THIRD_PARTY_APPS = (
'south',
)
LOCAL_APPS = (
)
INSTALLED_APPS = Django_APPS + THIRD_PARTY_APPS + LOCAL_APPS
MIDDLEWARE_CLASSES = (
'Django.contrib.sessions.middleware.SessionMiddleware',
'Django.middleware.common.CommonMiddleware',
'Django.middleware.csrf.CsrfViewMiddleware',
'Django.contrib.auth.middleware.AuthenticationMiddleware',
'Django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'Django.contrib.messages.middleware.MessageMiddleware',
'Django.middleware.clickjacking.XFrameOptionsMiddleware',
'Django.middleware.security.SecurityMiddleware',
)
ROOT_URLCONF = 'misite.urls'
WSGI_APPLICATION = 'misite.wsgi.application'
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
paramètres locaux:
from .base import *
TEMPLATE_DEBUG = True
ALLOWED_HOSTS = []
DEBUG = True
DEFAULT_FROM_EMAIL = '[email protected]'
# ----------------------------
# POSTGRESQL
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'NAME': 'misite',
'USER:': 'fernandoperez',
'PASSWORD': 'admin',
'Host':'localhost',
'PORT':'5432',
}
}
SOUTH_DATABASE_ADAPTERS = {
'default': "south.db.postgresql_psycopg2"
}
STATIC_URL = '/static/'
Est-ce que quelqu'un peut m'aider?? Merci beaucoup.
Cela m'est arrivé lorsque j'ai mis à niveau divers modules à l'aide de pip
et l'une des dépendances a été automatiquement mise à niveau Django vers la version actuelle (1.8). Vous pouvez simplement vérifier quelle est votre version actuelle = Django version (pip freeze
) et s'il est de 1,8, rétrogradez-le à 1,6 ligne (pip install -U "Django<1.7"
).
Essayez pip uninstall South
, vous verrez alors si votre application est prête pour la version 1.8.
Veuillez noter que South est maintenant en fin de vie en faveur du nouveau framework de migrations dans Django 1.7, qui est basé sur South mais avec des améliorations de conception significatives.
Pour plus de détails sur Django vous pouvez vous référer à la note de publication - https://docs.djangoproject.com/en/1.9/releases/1.7/#schema-migrations =
South ne fonctionnera pas avec Django 1.7; il ne prend en charge que les versions 1.4, 1.5 et 1.6.
Mais le problème est de savoir comment résoudre le problème en conservant Django 1.8 (dernière version). Je ne pense pas que le passage à 1.6 soit une bonne idée car Django 1.6 n'est plus une version sécurisée.
En utilisant Django 2.2.4 j'ai réalisé que "sud" était inclus dans une de mes applications tierces installées (socket_server). Mais pas sur le module, plutôt, dans les politiques de migration (peut-être le les gars qui ont créé le module utilisent toujours une ancienne version de Django.) Donc, changé le nom de 0001_inicial.py en 0001_inicial_old et Django n'a pas pu le trouver et en a généré une autre. -mesure (le socket doit s'installer sans)