2011年03月22日 星期二 22:12
<!-- @page { margin: 0.79in } PRE.cjk { font-family: "DejaVu Sans", monospace } P { margin-bottom: 0.08in } A:link { so-language: zxx } -->
Django 的admin中使用CKEditor:
环境:
system: ubuntu 10.10
python: 2.6.6
django: 1.2.5 final
web server: django自带
DEMO名: max
DEMO所在路径:/home/maotoo/django/
基础部分:
1:从此处下载django-CKEditor: https://github.com/shaunsephton/django-ckeditor#readme。解压下载的文件,安装到django中,(即:从命令行进入刚刚下载解压缩的文件,运行python setup.py install,系统就会自动完成安装。如果linux记得给安装权限。)
2:建立DEMO工程,打开命令行:
django-admin.py startproject max #建立项目 max,注意项目所在的目录,
3:建立一个基本的app:
python manage.py startapp news
model.py如下:
from django.db import models
from django.contrib import admin
class News(models.Model):
news_title=models.CharField('标题',max_length=200,unique=True)
news_content=models.TextField('内容')
def __unicode__(self):
return self.news_title
class NewsAdmin(admin.ModelAdmin):
list_dislpay='news_title',
admin.site.register(News,NewsAdmin)
4:开启django的admin功能,并将刚刚建立的app : news 注册到admin中,在测试服务器下运行,此时还没有涉及到CKEditor部分,基本上都能完成。
文件配置:
1:在max中建立如下文件夹:
static:用来保存CKEditor(js,CSS等文件)
uploads:图片上传保存位置
2:进入刚刚下载的django_CKEditor,将目录中的ckeditor复制到max中。将ckeditor/media/下的ckeditor粘贴到static中。
3:进入max/settings.py:
#详细意思请看安装说明:https://github.com/shaunsephton/django-ckeditor#readme
CKEDITOR_MEDIA_PREFIX = "/static/ckeditor/"
#指定CKEditor访问JS,CSS文件的前缀,注意不要忘记首尾斜杠
CKEDITOR_UPLOAD_PATH = "/home/maotoo/django/max/uploads"
#图片上传的路径
CKEDITOR_UPLOAD_PREFIX = "http://localhost:8000/uploads/
#访问上传文件的前缀
CKEDITOR_RESTRICT_BY_USER=True
#开启图片上传功能
CKEDITOR_CONFIGS = {
'default': {
'toolbar': 'Full', 'height': 300, 'width': 300, }, 'awesome_ckeditor': { 'toolbar': 'Basic', }, } #CKEditor的一些定制 4:进入max/urls.py: 再url中添加: (r'^ckeditor/', include('ckeditor.urls')), 5:添加templates文件: max/settings.py: TEMPLATE_DIRS=( '/home/maotoo/django/max/ckeditor/templates/', ) 文件配置基本上就完成了。
使用CKEditor:
1:进入刚刚news,编辑model文件
from ckeditor.fields import RichTextField
class News(models.Model):
….
news_content=RichTextField()
注:django_ckeditor中还有一种使用方式,不过没这个简单,详细的阅读官方文档。
几种常见错误的解决方式:
运行服务器,此时,在admin中显示的依然是一个Text文本框。查看控制台发现如下问题:
GET /static/ckeditor/ckeditor/ckeditor.js HTTP/1.1" 404 2055 意思是说没有找到ckeditor.js文件。
解决办法:
1:到static中调整文件目录
2:进入urls.py 中添加:
第一行:from django.conf import settings
最后一行:
if settings.DEBUG:
urlpatterns+=patterns('',
(r'^static(P<path>.*$,'django.views.static.serve'{'document_root':'/home/maotoo/django/myck/static/'}
)
)
刷新,即可显示CKEditor
GET /localhost:8000/uploads/2011/03/22/1.jpg HTTP/1.1" 404 2120
同样的解决办法:
(r'uploads(P<path>.*$,'django.views.static.serve'{'document_root':'/home/maotoo/django/myck/uploads/'}
)
是不是就可以上传图片啦? :)
总结:
1:要读懂django_ckeditor官方的说明文档,
2:一般都是JS路径出错,所以要注意通过测试服务器的提示,找到问题所在。注意404错误。
3:测试服务器中,解决JS路径错误比较方便的就是urlpatterns中做跳转。如果放在服务器上,当然有更好的方法,譬如:apache中使用alias语句
PS:这一次就不提供DEMO实例了,ubuntu下敲拼音敲得真累呀-.-
<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->
2011年03月23日 星期三 08:43
上次使用的tinyMCE,现在换回ckeditor了?
2011年03月28日 星期一 13:11
根据配置上传已经能够实现了,可是在显示时,图片路径变成了这样的“http://127.0.0.1:8000/uploads/%5Cadmin%5C2011%5C03%5C28%5C111.jpg”,把其中的“%5C”手动换成“/”,就是图片真实路径了,请问遇到过没?咋解决呢?
ps:火狐浏览器下有这个问题,ie8没有~
ps2:点击上传之后,返回到图像中的路径有乱码(ie8)~
2011年03月31日 星期四 01:56
能否贴一张上传图片的界面截图?!请问可以上传本地图片吗?
Zeuux © 2024
京ICP备05028076号