我目前正在使用Django框架将内容管理系统构建到公司网站中,并且在成功完成一个页面后,开始在需要丰富的不同页面上工作文本编辑器在管理界面。Django TinyMCE:'ModelFormMetaclass'对象不可迭代
选择了TinyMCE作为工作之后,我在周一花了很多时间试图让它正常运行,但只管理了一个简单的HTMLField()。被许多不同的教程略微困惑,我现在遇到了一个错误,我正在努力寻找解决方案,而且我希望StackOverflow社区可以帮助解决这个问题。
目前,我有以下代码:
admin.py
from django.forms import *
from django.db.models import *
from tinymce.widgets import TinyMCE
from models import *
from django.contrib import admin
#class MyModelForm(forms.ModelForm):
#content = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
#class Meta:
#model = MyModel
class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm
admin.site.register(MyModelForm, MyModelAdmin)
大部分此类代码已被注释掉进行调试,因为这个问题似乎与models.py:
models.py
from django import forms
from django.contrib.flatpages.models import FlatPage
from tinymce.widgets import TinyMCE
class MyModelForm(forms.ModelForm):
content = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows' : 30}))
class Meta:
model = FlatPage
这是我正在提供的回溯:
Environment:
Request Method: GET
Request URL: mycomputer.mydomain/company/admin/
Django Version: 1.5.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'cms',
'mptt',
'menus',
'south',
'sekizai',
'cms.plugins.file',
'cms.plugins.link',
'cms.plugins.picture',
'cms.plugins.text',
'reversion',
'grappelli',
'profiles',
'tinymce',
'testapp',
'django_reset')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
103. resolver_match = resolver.resolve(request.path_info)
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve
319. for pattern in self.url_patterns:
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns
347. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module
342. self._urlconf_module = import_module(self.urlconf_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/home/systems/vhost-trunk/djangocms/companycms/companycms/urls.py" in <module>
7. admin.autodiscover()
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/__init__.py" in autodiscover
29. import_module('%s.admin' % app)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
35. __import__(name)
File "/home/systems/vhost-trunk/djangocms/companycms/testapp/admin.py" in <module>
17. admin.site.register(MyModelForm, MyModelAdmin)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in register
77. for model in model_or_iterable:
Exception Type: TypeError at /admin/
Exception Value: 'ModelFormMetaclass' object is not iterable
正如您所看到的,tinymce似乎正确安装,并且问题在于模型。模型
我的目标是,如果不清楚,是创建一个带有一个内容字段的简单MyModel模型,可以使用TinyMCE编辑器进行编辑。如果您认为我可以提供更多代码以更好地了解情况,请告诉我。谢谢。
如果你需要TinyMCE用于Django管理检查这个要点https://gist.github.com/bofh19/6021510这是一个简单的hack的base_site.html和使Django的管理员使用tinyMCE在所有textarea字段 – boltsfrombluesky
嗨,感谢您的帮助。当我尝试使用您的代码时,我收到了一个GET 404错误,表示无法找到主题,现在我收到与我自己本地版本的脚本相同的错误: GET http://.../ company/admin/contact/column/1/themes/modern/theme.js/404(NOT FOUND)tiny_mce.js:7551 无法加载:http://.../company/admin/contact/column/1 //themes/modern/theme.js –
嗨..我还没有在models.py或admin.py中使用任何编辑...只是在admin/base_site.html中创建了一个文件,并在gist中添加了内容..这里是我的网站http://backpaper.w4rlock.in/media/image/ss.png的屏幕截图 – boltsfrombluesky