2016-12-01 4 views
1

Ich habe Django 1.10 mit MySQL, jedes Mal, wenn ich Admin eingeben und ich versuche, einen Benutzer ich diesen Fehler zu machen:Django: OperationalError wenn ich versuche, Benutzer von Admin erstellen

enter image description here

Die Sache ist Ich kann jedes andere Modell erstellen, und wenn ich einen Superbenutzer über die Befehlszeile erstelle, kann ich diesen Benutzer bearbeiten, aber wenn ich "Benutzer hinzufügen" drücke, bekomme ich diesen Fehler. Ich habe versucht, die Datenbank zu löschen und zweimal neu zu erstellen.

Und hier ist mein settings.py:

import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

DEBUG = True 

ALLOWED_HOSTS = [] 

INSTALLED_APPS = [ 
    # django apps 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 

    # our apps 
    'authentication', 
    'homepages', 
    'school' 
] 

MIDDLEWARE_CLASSES = [ 
    'django.middleware.security.SecurityMiddleware', 
    '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', 
] 

ROOT_URLCONF = 'config.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
      BASE_DIR + '/templates/' 
     ], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'debug': DEBUG, 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'config.wsgi.application' 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'isj', 
     'USER': 'test_user', 
     'PASSWORD': 'password', 
     'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 
     'PORT': '', # Set to empty string for default. 
    } 
} 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 

STATIC_URL = '/static/' 
STATICFILES_DIRS = (os.path.join('static'),) 
+1

Könnten Sie bitte Ihre Frage mit Ihrer settings.py aktualisieren? –

+0

Da haben Sie es :) –

+0

Die Zeile "Exception Value" sagt: "SAVEPOINT ... existiert nicht". Diese Frage könnte verwandt werden: http://stackoverflow.com/q/13728843/293494 – mkj

Antwort

0

In meinem Fall habe ich, dass die Ursache herausgefunden, ist die MySQL-Python Datenbank-Treiber und die fix ist andere MySQL-Treiber für Python zu verwenden (zB mysqlclient).

$ pip uninstall MySQL-Python 
$ pip install mysqlclient 

MySQL-python stellte sich heraus, sehr alt sein (zuletzt vor 7 Jahren begehen). mysqlclient ist die moderne Version mit vielen Verbesserungen und Fehlerbehebungen.

Weitere Details über meine Reparatur und Ergebnisse here.

Verwandte Themen