我使用django-grappeli和sorl-thumbnail在Django 1.3上遇到了麻烦.我有一个项目使用官方sorl-thumbnails文档中的代码:
# myapp/admin.py
from django.contrib import admin
from myapp.models import MyModel
from sorl.thumbnail.admin import AdminImageMixin
class MyModelAdmin(AdminImageMixin, admin.ModelAdmin):
pass
Run Code Online (Sandbox Code Playgroud)
这个项目适用于调试服务器,并且管理员的更改形式中会出现一个漂亮的小缩略图.
但是,在另一个项目中,我通过WSGI服务我的项目,我有3个独立的域:
www.example.com
media.example.com (that's serving user uploaded files)
static.example.com (that's serving static files)
Run Code Online (Sandbox Code Playgroud)
但是,在此项目中,AdminImageMixin工作正常,但模型的changeform中没有可用的缩略图:
以下是一些示例代码:
# models.py
class Category(models.Model):
name = models.CharField(max_length=200, verbose_name='name', help_text='Name of category')
description = models.TextField(verbose_name='Description', help_text='You can use Textile')
icon = ImageField(upload_to='uploads/', blank=True, null=True)
# admin.py
class CategoryAdmin(AdminImageMixin, admin.ModelAdmin):
pass
admin.site.register(Category, CategoryAdmin)
# settings.py
INSTALLED_APPS = ( …Run Code Online (Sandbox Code Playgroud) 它不会保存.
ed.execCommand('mceInsertContent', false, h);media.js中的输出:<img src="http://127.0.0.1:8000/media/admin/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif" class="mceItemFlash" title="src:'http://www.youtube.com/v/b7wJejHIFEc&feature',width:'376',height:'302'" width="376" height="302" align="" />当我按下插入/提交时.<p> </p>移动嵌入的东西应该是什么.这是我目前的tinymce初始化脚本:
tinyMCE.init({
// General
mode: 'none',
theme: 'advanced',
skin: 'grappelli',
dialog_type: 'window',
browsers: 'gecko,msie,safari,opera',
editor_deselector : 'mceNoEditor',
language: "en",
relative_urls: false,
plugins: 'advimage,advlink,fullscreen,paste,searchreplace,grappelli,grappelli_contextmenu,media',
// callbackss
file_browser_callback: 'CustomFileBrowser',
// Layout
width: 410,
height: 500,
indentation: '10px',
object_resizing: false,
// Accessibility
cleanup_on_startup: true,
accessibility_warnings: false,
remove_trailing_nbsp: true,
fix_list_elements : true,
remove_script_host: true,
// theme_advanced
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: …Run Code Online (Sandbox Code Playgroud) 尝试使用django-grappelli作为我的管理主题,安装具有惊人的挑战性.在我的urls.py中运行以下内容:
NameError .. name 'grappelli' is not defined
Run Code Online (Sandbox Code Playgroud)
该错误被抛出
(r'^grappelli/', include(grappelli.urls))
Run Code Online (Sandbox Code Playgroud)
用pip安装grappelli,grappelli在我的sites-packages目录中.添加到我的INSTALLED_APPS,运行syncdb,尝试将grappelli添加到我的pythonpath,但没有运气.如果我在urls.py中导入grappelli,则错误会更改为AttributeError - 'module' has no attribute 'urls'
建议或任何形式的帮助非常感谢.
是否可以将django grappeli和django管理工具菜单一起运行?
我已经安装了两个,但只能看到grappeli或管理工具(取决于INSTALLED_APPS中的顺序).
我发现老源说django管理工具和grappelli一起工作http://code.google.com/p/django-grappelli-admin-tools/,但是给出的文档没有帮助.
我在Ubuntu服务器上运行django 1.4和grappelli 2.4.3,我在生产时通过Windows网络系统查看.当我使用RDP在Ubuntu机器上查看它时,在开发服务器上一切正常.
settings.py的相关部分是:
STATIC_ROOT = os.path.join(os.path.dirname(__file__), '../03_static_files/collected/')
STATIC_URL = '/static/'
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.
os.path.join(os.path.dirname(__file__), '../03_static_files/'),
os.path.join(os.path.dirname(__file__), '../03_static_files/admin/'),
os.path.join(os.path.dirname(__file__), '../03_static_files/filebrowser/'),
os.path.join(os.path.dirname(__file__), '../03_static_files/grappelli/'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# apps I added but didn't create
'south',
'grappelli',
'filebrowser',
'tinymce',
'haystack',
'gunicorn',
'debug_toolbar', …Run Code Online (Sandbox Code Playgroud) 使用Django Grappelli管理工具,我可以配置一个ForeignKey(多对一)字段显示为自动完成小部件,而不是下拉字段,如下所示:
class MyModel(models.Model):
related = models.ForeignKey(RelatedModel, related_name='my_models')
class MyModelAdmin(admin.ModelAdmin):
raw_id_fields = ('related',)
autocomplete_lookup_fields = {
'fk': ['related'],
}
Run Code Online (Sandbox Code Playgroud)
不过,我想要做的就是在定义自动完成构件查找其他(一到多)方向(即在管理的RelatedModel,所以我可以查找一个或多个为MyModel对象).现在,我只是使用ModelMultipleChoiceField:
class RelatedModelForm(forms.ModelForm):
class Meta:
model = RelatedModel
fields = ('my_models',)
my_models = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all())
def __init__(self, *args, **kwargs):
super(SaleAdminForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['foods'].initial = self.instance.foods.all()
def save(self, *args, **kwargs):
instance = super(RelatedModelForm, self).save(commit=False)
self.fields['my_models'].initial.update(related=None)
self.cleaned_data['my_models'].update(related=instance)
return instance
class RelatedModelAdmin(admin.ModelAdmin):
model = RelatedModel
form = RelatedModelForm
Run Code Online (Sandbox Code Playgroud)
但是,有太多的MyModel实例可以很好地处理这种类型的小部件.为MyModel对象提供一个或多个自动完成查找小部件代替ModelMultipleChoiceField是理想的.
Grappelli有一种简单的方法可以为FK关系和m2m关系进行自动完成查找,但是有没有办法实现一对多的关系?看起来像那些自动填充物和其他两种类型的关系一样有用,所以我猜想Grappelli也会提供一种简单的方法,但我找不到它......
django autocomplete one-to-many django-admin django-grappelli
我刚刚在 Django Admin 中遇到错误。这是本地重现的日志:
NonExistentTimeError at /admin/{blah}/
2015-10-18 00:00:00
Request Method: GET Request
URL: http://127.0.0.1:8000/admin/{blah}/?q=someuser%40hotmail.com
Django Version: 1.7.10
Exception Type: NonExistentTimeError
Exception Value: 2015-10-18 00:00:00 Exception
Location: C:\Python27\lib\site-packages\pytz\tzinfo.py in localize,
line 327 Python Executable: C:\Python27\python.exe Python
Version: 2.7.10
Run Code Online (Sandbox Code Playgroud)
我发现它确实2015-10-18 00:00:00不存在于我的时区(“美国/圣保罗”)中,因为那是夏令时开始的时间。
我正在使用date_hierarchy = 'date_lastupdated',当我在管理员中搜索用户someuser@hotmail.comDjango 时,仅返回一条记录,而该用户的记录date_lastupdated是'2015-10-18 05:10:18.593336-03'.
错误发生在模板~~~~/Python27/lib/site-packages/grappelli/templates/admin/change_list.html第 212 行:
<!-- DATE HIERARCHY -->
{% block date_hierarchy %}
{% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}
{% …Run Code Online (Sandbox Code Playgroud) 我和Django Grappelli有问题.它似乎正在加载CSS就好了,但样式似乎......关闭.也许一些照片会澄清我的意思:


我试图使用django-grappelli仪表板,管理界面给出了错误.
Django Version: 1.4.1
Exception Type: ImportError
Exception Value:
No module named dashboard
In template /.../lib/python2.7/site-packages/grappelli/dashboard/templates/admin/index.html, error at line 32
31 {% block content %}
32 {% grp_render_dashboard %}
33 {% endblock %}
Run Code Online (Sandbox Code Playgroud)
我可以在更改之前使用grappelli管理界面.采取的步骤是根据手册.我将这些添加到我的settings.py中
GRAPPELLI_INDEX_DASHBOARD = 'myproj.dashboard.CustomIndexDashboard'
...
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.request",
"django.core.context_processors.i18n",
'django.contrib.messages.context_processors.messages',
)
INSTALLED_APPS = (
'grappelli.dashboard',
'grappelli',
'django.contrib.admin',
...
Run Code Online (Sandbox Code Playgroud)
dashboard.py位于根目录(myproj)中.它里面有一堂课.
class CustomIndexDashboard(Dashboard):
myproj
??? admin
? ??? css
:
??? dashboard.py
??? grappelli
? ??? images
? ? ??? backgrounds
??? myapp
? ??? …Run Code Online (Sandbox Code Playgroud) 我无法让django-grappelli工作.以下是我的所作所为 -
pip install django-grappelli.grappelli在' ' 之前在INSTALLED_APPS中添加了' django.contrib.admin'.url(r'^grappelli/', include('grappelli.urls'))在admin url之前添加了URL定义,即.url(r'^admin/', include(admin.site.urls))syncdb和collectstatic命令.现在,当我运行命令runserver,并浏览localhost:8000/admin /时,令人惊讶的是我得到了默认的admin.
我在Google Chrome网络标签中检查了请求流量(在开发者工具中),我没有看到任何以Grappelli开头的网址请求.
我不知道我做错了什么.我在Windows 7机器上的virtualenv中使用Django 1.4.1-final.
django-grappelli ×10
django ×9
python ×4
django-admin ×2
autocomplete ×1
gunicorn ×1
javascript ×1
nginx ×1
one-to-many ×1
tinymce ×1