【发布时间】:2015-06-30 22:28:02
【问题描述】:
我在使用 django 管理弹出窗口时遇到问题:通过单击加号创建与我当前正在处理的对象相关的新对象(例如,用户模型和他所属的组)在表单字段附近,我希望浏览器打开一个由相关模型的添加视图提供的弹出窗口,但我所体验的是页面本身内部的添加视图的服务。实际上,弹出窗口没有按应有的方式工作。
加号上的链接(来自标准用户模型管理页面,组字段)如下:/admin/auth/group/add/?_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
【问题讨论】:
-
我使用了您提供的网址并在我的(Django 1.8)上进行了尝试。没有弹出窗口。它只是一个页面,就像你看到的那样。我很确定这也是 1.7 中的内容。
-
我遇到了同样的问题(添加相关的在同一个窗口而不是弹出窗口中打开),但我没有使用 Grappelli。知道它可能是什么吗?
标签: django django-admin