2015-04-23 2 views
1

У меня возникла проблема с всплывающими окнами администратора django: при создании нового объекта, связанного с тем, над которым я сейчас работаю (например, модель пользователя и группы, к которым он принадлежит) щелкнув знак «плюс» рядом с полем формы, я ожидаю, что браузер откроет всплывающее окно, которое будет отображаться в представлении добавления соответствующей модели, но вместо этого то, что я испытываю, является службой просмотра добавления внутри самой страницы. Практически говоря, всплывающее окно не работает так, как должно быть.Django admin всплывающие ссылки сломаны

Ссылка на знак плюс (от стандартной страницы администратора модели пользователя, поле Group) является следующее: /администратор/авт/группа/добавить/_ to_field = идентификатор & _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

У меня такая же проблема (add-related открывается в том же окне вместо popup), но я не использую 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

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