2015-04-23 109 views
1

我遇到了django管理弹出窗口的问题:创建与我目前正在使用的对象(例如,用户模型和他所属的组)相关的新对象时,通过单击表单字段附近的加号,我期望浏览器打开由相关模型的添加视图提供的弹出窗口,但是我所遇到的是在页面内部添加视图的服务。实际上,弹出窗口不能正常工作。Django管理弹出链接已损坏

上的加号的链路(从标准的用户模型管理页面,组字段)是以下的:/管理/ AUTH /组/添加/ _ to_field = ID & _popup = 1

的同样的行为正在发生在其他模型上,这表明我的设置文件有问题(也许缺少的是一个JavaScript处理程序...)

你知道什么是错的吗?我使用django 1.8和django grappelli界面。

这里是我的设置文件(核心部分):

import os 

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

MEDIA_ROOT = '/webapps/example/media/' 
MEDIA_URL = '/media/' 

STATIC_ROOT = '/webapps/example/static/' 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'), 
) 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
) 

TEMPLATES = [{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'APP_DIRS': False, 
    'DIRS': [os.path.join(PROJECT_ROOT, 'templates')], 
    'OPTIONS': { 

     'context_processors': (
      'django.contrib.auth.context_processors.auth', 
      'django.core.context_processors.debug', 
      'django.core.context_processors.i18n', 
      'django.core.context_processors.media', 
      'django.core.context_processors.static', 
      'django.core.context_processors.tz', 
      'django.contrib.messages.context_processors.messages', 

      "django.core.context_processors.request", 
     ), 

     'loaders': (
      'django.template.loaders.filesystem.Loader', 
      'django.template.loaders.app_directories.Loader', 
     ), 

     'debug': False 
    } 
}] 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
) 

TEST_RUNNER = 'django.test.runner.DiscoverRunner' 

ROOT_URLCONF = 'example.urls' 

WSGI_APPLICATION = 'example.wsgi.application' 

INSTALLED_APPS = (
    # Grappelli custom admin, needs to be defined before the admin app. 
    'grappelli', 

    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    # 'django.contrib.sites', 

    # 'django.contrib.humanize', 
    # 'django.contrib.sitemaps', 

    # 3rd-party app 
    'gunicorn', 
    'django_extensions', 

    # Local apps 
    ... 
) 

SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' 

# Grappelli settings. 
GRAPPELLI_ADMIN_TITLE = SITE_NAME 
+0

我用你提供的并在我的(Django 1.8)尝试过的网址。没有弹出窗口。这只是你看到的一个页面。我很确定这就是它在1.7中的情况。 – Cheng

+0

我有同样的问题(添加相关在同一个窗口中打开,而不是弹出),但我没有使用Grappelli。任何想法它可能是什么? – becko

回答

4

Django的推出改变创建管理员弹出窗口中的JavaScript。 Grappelli目前不完全兼容Django 1.8。

此问题已在Github上报告过。欲了解更多信息,你可以按照票:https://github.com/sehmaschine/django-grappelli/issues/600

+0

你是对的,我错过了检查django 1.8和grappelli之间的兼容性。谢谢! – Dragster

+0

我没有Grappelli,但我的弹出窗口也丢失(http://stackoverflow.com/q/33189728/855050)。有任何想法吗? – becko