2015-08-13 3 views
1

У меня есть приложение Django, которое я пытаюсь получить в Django-нереле, чтобы получить его на GAE. Проблема, однако, в том, что много раз у меня попытался создать суперпользователь для интерфейса администратора еще, когда я SyncDB, он показывает мне:Django-nonrel с движком приложения django не может получить доступ к интерфейсу администратора

Вы только что установили систему аутентификации Джанго, который означает, что вы не имеете любого определены суперпользователи.

everytime.Also, я никогда не могу войти в свой интерфейс администратора созданным суперпользователем. Кроме того, когда я делаю это:

python manage.py shell 
 
>>> from django.contrib.auth.models import User 
 
>>> User.objects.all() 
 
[]

SO нет пользователей созданы, кажется. Я пытался искать решение и и взглянуть на несколько вопросов, как эти:

django-nonrel and the admin page

и несколько других. Не помогло. Я хотел бы отметить, что я использую почтовую скачали версию Джанго-nonrel 1.6 и djangoappengine, скопировав их в моем каталоге проекта

Просто для справки моего settings.py и app.yaml файлов следующим образом :

Settings.py:

# Django settings for flogin project. 
 

 
# Initialize App Engine and import the default settings (DB backend, etc.). 
 
# If you want to use a different backend you have to remove all occurences 
 
# of "djangoappengine" from this file. 
 
from djangoappengine.settings_base import * 
 
import sys 
 
sys.path.insert(0, 'libs') 
 

 

 

 
ADMINS = (
 
    # ('Your Name', '[email protected]'), 
 
) 
 

 
MANAGERS = ADMINS 
 

 
# Activate django-dbindexer for the default database 
 
DATABASES['default'] = {'ENGINE': 'dbindexer', 'TARGET': DATABASES['default']} 
 

 
AUTOLOAD_SITECONF = 'indexes' 
 

 
# Hosts/domain names that are valid for this site; required if DEBUG is False 
 
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts 
 
ALLOWED_HOSTS = [] 
 

 
# Local time zone for this installation. Choices can be found here: 
 
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name 
 
# although not all choices may be available on all operating systems. 
 
# In a Windows environment this must be set to your system time zone. 
 
TIME_ZONE = 'America/Chicago' 
 

 
# Language code for this installation. All choices can be found here: 
 
# http://www.i18nguy.com/unicode/language-identifiers.html 
 
LANGUAGE_CODE = 'en-us' 
 

 
SITE_ID = 1 
 

 
# If you set this to False, Django will make some optimizations so as not 
 
# to load the internationalization machinery. 
 
USE_I18N = True 
 

 
# If you set this to False, Django will not format dates, numbers and 
 
# calendars according to the current locale. 
 
USE_L10N = True 
 

 
# If you set this to False, Django will not use timezone-aware datetimes. 
 
USE_TZ = False 
 

 
# Absolute filesystem path to the directory that will hold user-uploaded files. 
 
# Example: "/var/www/example.com/media/" 
 
MEDIA_ROOT = '' 
 

 
# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
 
# trailing slash. 
 
# Examples: "http://example.com/media/", "http://media.example.com/" 
 
MEDIA_URL = '' 
 

 
# Absolute path to the directory static files should be collected to. 
 
# Don't put anything in this directory yourself; store your static files 
 
# in apps' "static/" subdirectories and in STATICFILES_DIRS. 
 
# Example: "/var/www/example.com/static/" 
 
STATIC_ROOT = '' 
 

 
# URL prefix for static files. 
 
# Example: "http://example.com/static/", "http://static.example.com/" 
 
STATIC_URL = '/static/' 
 

 
# Additional locations of static files 
 
STATICFILES_DIRS = (
 
    # Put strings here, like "/home/html/static" or "C:/www/django/static". 
 
    # Always use forward slashes, even on Windows. 
 
    # Don't forget to use absolute paths, not relative paths. 
 
) 
 

 
# List of finder classes that know how to find static files in 
 
# various locations. 
 
STATICFILES_FINDERS = (
 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
 
) 
 

 
# Make this unique, and don't share it with anybody. 
 
SECRET_KEY = 'some key not shown here' 
 

 
# List of callables that know how to import templates from various sources. 
 
TEMPLATE_LOADERS = (
 
    'django.template.loaders.filesystem.Loader', 
 
    'django.template.loaders.app_directories.Loader', 
 
#  'django.template.loaders.eggs.Loader', 
 
) 
 

 
MIDDLEWARE_CLASSES = (
 
    # This loads the index definitions, so it has to come first 
 
    'autoload.middleware.AutoloadMiddleware', 
 

 
    'django.middleware.common.CommonMiddleware', 
 
    'django.contrib.sessions.middleware.SessionMiddleware', 
 
    'django.middleware.csrf.CsrfViewMiddleware', 
 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
 
    'django.contrib.messages.middleware.MessageMiddleware', 
 
    # Uncomment the next line for simple clickjacking protection: 
 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
 
) 
 

 
ROOT_URLCONF = 'flogin.urls' 
 

 
TEMPLATE_DIRS = (
 
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 
 
    # Always use forward slashes, even on Windows. 
 
    # Don't forget to use absolute paths, not relative paths. 
 
) 
 

 
INSTALLED_APPS = (
 
    'django.contrib.auth', 
 
    'django.contrib.contenttypes', 
 
    'django.contrib.sessions', 
 
    #'django.contrib.sites', 
 
    'django.contrib.messages', 
 
    'django.contrib.staticfiles', 
 
    'oauth2_provider', 
 
    'social.apps.django_app.default', 
 
    'rest_framework_social_oauth2', 
 
    'flogin', 
 
    'djangoappengine', 
 
    # Uncomment the next line to enable the admin: 
 
    'django.contrib.admin', 
 
    # Uncomment the next line to enable admin documentation: 
 
    'django.contrib.admindocs', 
 
    'djangotoolbox', 
 
    'autoload', 
 
    'dbindexer', 
 

 
    # djangoappengine should come last, so it can override a few manage.py commands 
 
    
 
) 
 

 
# A sample logging configuration. The only tangible logging 
 
# performed by this configuration is to send an email to 
 
# the site admins on every HTTP 500 error when DEBUG=False. 
 
# See http://docs.djangoproject.com/en/dev/topics/logging for 
 
# more details on how to customize your logging configuration. 
 
LOGGING = { 
 
    'version': 1, 
 
    'disable_existing_loggers': False, 
 
    'filters': { 
 
     'require_debug_false': { 
 
      '()': 'django.utils.log.RequireDebugFalse' 
 
     } 
 
    }, 
 
    'handlers': { 
 
     'mail_admins': { 
 
      'level': 'ERROR', 
 
      'filters': ['require_debug_false'], 
 
      'class': 'django.utils.log.AdminEmailHandler' 
 
     } 
 
    }, 
 
    'loggers': { 
 
     'django.request': { 
 
      'handlers': ['mail_admins'], 
 
      'level': 'ERROR', 
 
      'propagate': True, 
 
     }, 
 
    } 
 
}

app.yaml

application: flogin 
 
version: 1 
 
runtime: python27 
 
api_version: 1 
 
threadsafe: yes 
 

 
builtins: 
 
- remote_api: on 
 

 
inbound_services: 
 
- warmup 
 

 
handlers: 
 
- url: /_ah/queue/deferred 
 
    script: djangoappengine.deferred.handler.application 
 
    login: admin 
 

 
- url: /_ah/stats/.* 
 
    script: djangoappengine.appstats.application 
 

 
- url: /media/admin 
 
    static_dir: django/contrib/admin/media 
 
    expiration: '0' 
 

 
- url: /.* 
 
    script: djangoappengine.main.application

+0

Я хотел бы также упомянуть, я также пытался изменив указанные выше настройки DATABASES ['default'].ру от того, что дано выше: БАЗ = { 'по умолчанию': { 'ДВИГАТЕЛЯ': 'dbindexer', 'TARGET': 'GAE', }, 'GAE': { 'МОТОР': 'djangoappengine.db', }, } Не работает. –

+0

http://stackoverflow.com/a/32629024/1075066 –

+0

Оказывая ту же проблему, нашли ли вы решение? –

ответ

1

Хорошо, у меня была та же проблема, и я нашел причину, почему это происходит. Когда вы запускаете manage.py с любой командой, кроме «runerver», djangoappengine создает базу данных в памяти для этого, и я думаю, что это ошибка в djangoappengine здесь, поэтому никаких изменений в локальной базе данных для «syncdb» или «shell» или «createuperuser» не происходит ', btw Я использую v1.7.1 djangoappengine. Когда вы запускаете команду «runningerver», она сначала создает базу данных в памяти, но затем воссоздает ее с соответствующим локальным сохраненным.

Итак, как исправить это? Самый простой способ это исправить djangoappengine/дб/stubs.py,

В методе def activate_stubs(self, connection): заменить

self.activate_test_stubs(connection)

с

from .base import DATASTORE_PATHS self.activate_test_stubs(connection, DATASTORE_PATHS['datastore_path'])

 Смежные вопросы

  • Нет связанных вопросов^_^