2015-04-23 147 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