但是没有分表的其他内容编辑调用ueditor的时候,是能够正常显示的(说明我的ueditor安装是正确的),例如:案例内容编辑,它的models.py是这样的:
class case(models.Model):
FLAG_CHOICES = (
(u'p', u'网站建设'),
(u's', u'网站优化'),
(u'j', u'文案编辑'),
(u't', u'百科优化'),
(u'o', u'其他类型'),
)
title = models.CharField(verbose_name='项目名称', max_length=120)
slimg = models.ImageField(verbose_name='缩略图', default='webimages/default.jpg', null=True)
seotitle = models.CharField(verbose_name='SEO标题', max_length=120, null=True, blank=True)
keywords = models.CharField(verbose_name='SEO关键词', max_length=150, null=True, blank=True)
description = models.CharField(verbose_name='SEO描述', max_length=150, null=True, blank=True)
flag = models.CharField(verbose_name='服务类型', max_length=2, choices=FLAG_CHOICES, default='o')
content = UEditorField('项目介绍', width=800, height=500,
toolbars="full", imagePath="upimg/", filePath="upfile/",
upload_settings={"imageMaxSize": 1204000},
settings={}, command=None, blank=True
)
pubdate = models.DateTimeField(verbose_name='发布时间', auto_now_add=True)
istopping = models.BooleanField(verbose_name='是否置顶', default=0)
def __str__(self):
return self.title
class Meta:
verbose_name_plural = '案例作品'
相应的adminx。py是这样的:
class caseAdmin(object):
list_display = ('id', 'title','flag')
search_fields = ('title',)
model_icon = "fa fa-list"
style_fields = {'content': 'ueditor'}
后台显示正常,如下图:
但是我的文章因为标题作者等和正文内容是分2个表的,models.py里是这样写的:
class detail(models.Model):
FLAG_CHOICES = (
(u'o', u'普通'),
(u'f', u'幻灯'),
(u'h', u'头条'),
(u'c', u'推荐'),
(u'a', u'特别'),
)
typeid = models.ForeignKey(artlist,verbose_name='所属栏目',on_delete=models.CASCADE)
title = models.CharField(verbose_name='标题',max_length=120)
keywords = models.CharField(verbose_name='关键词', max_length=150, null=True, blank=True)
description = models.CharField(verbose_name='描述', max_length=150, null=True, blank=True)
tags = models.CharField(verbose_name='tag标签',max_length=255,null=True,blank=True)
flag = models.CharField(verbose_name='属性',max_length=2, choices=FLAG_CHOICES,default='o')
limg = models.ImageField(verbose_name='缩略图',default='webimages/default.jpg',null=True)
pubdate = models.DateTimeField(verbose_name='发布时间',auto_now_add=True)
clicks = models.IntegerField(verbose_name='浏览量',default=random.randint(599,9955))
istopping = models.BooleanField(verbose_name='是否置顶',default=0)
ispushed = models.BooleanField(verbose_name='是否显示',default=0)
def __str__(self):
return self.title
class Meta:
verbose_name_plural = '文章列表'
class detailct(models.Model):
content = UEditorField('内容', width=800, height=500,
toolbars="full", imagePath="upimg/", filePath="upfile/",
upload_settings={"imageMaxSize": 1204000},
settings={}, command=None, blank=True
)
detail = models.OneToOneField("detail", on_delete=models.CASCADE)
class Meta:
verbose_name_plural = '文章正文'
相应的adminx.py是这样的:
class detailct(object):
model = detailct
extra = 1
exclude = ('id', 'is_active')
can_delete = False
show_change_link = True
style_fields = {'content':'ueditor'}
class detailAdmin(object):
list_display = ('id','typeid', 'title','tags','flag','pubdate','clicks','ispushed')
search_fields = ('title',)
inlines = [detailct]
list_per_page = 30
model_icon = "fa fa-book"
style_fields = {'content': 'ueditor'}
但是后台调用出来的就是一个普通的文本框,并不是富文本编辑器。
应该是分表调用的问题,这里不知道要怎么处理,请教!
【 2022-03-07 更新问题】
因为我的文章分两张表的,如何在不动这2张表的基础上实现在后台同一个界面编辑一篇文章的标题和正文等信息。也就是说,我这种情况下不用inline,还有什么改写的办法吗?
确保你Xadmin没有问题的话然后需要几个检查的地方
settings.py中
就没有问题了。如果还不行重新下个xadmin吧。
给你个我自己的整合好的python3的 https://github.com/Escaflowne1985/Django3Tools
inlines 从detailAdmin挪到detailct里试下。
你看一下你有没有漏了以下过程: (重点关注一下配置)
1、下载Ueditor,最后版本:1.4.3.3
UEditor - 下载ueditor.baidu.com
任意下载一个版本,如:PHP版,解压后,放在Django目录下。
UEDITOR_SETTINGS = {undefined
"toolbars": { #定义多个工具栏显示的按钮,允行定义多个
"name1": [['source', '|', 'bold', 'italic', 'underline']],
"name2": []
},
"images_upload":{undefined
"allow_type":"jpg,png,gif", #定义允许的上传的图片类型
"max_size":"10222kb" #定义允许上传的图片大小,0代表不限制
},
"files_upload":{undefined
"allow_type":"zip,rar,pdf,docx,doc,xls,xlsx,ppt,pptx,mp4,flv,swf", #定义允许的上传的文件类型
"max_size":"102222kb" #定义允许上传的文件大小,0代表不限制
},
"image_manager": {undefined
"location": "" #图片管理器的位置,如果没有指定,默认跟图片路径上传一样
}
}
MEDIA_URL='/static/ueupload/'
MEDIA_ROOT='./ExamWeb/static/ueupload/'
(2)、urls.py 中添加路由
url(r'^ueditor/', include('DjangoUeditor.urls'))
from DjangoUeditor.models import UEditorField
(1)、引入JS脚本
<script src="{% static '/plugs/ueditor/ueditor.config.js'%}"></script>
<script src="{% static '/plugs/ueditor/ueditor.all.min.js'%}"></script>
(2)、绑定富文本框
<script>var ue = UE.getEditor('qcontent',{undefined
'initialFrameWidth':1000,
'initialFrameHeight':150,
'serverUrl': "/ueditor/controller/?imagePathFormat=images/&filePathFormat=files/"
});
</script>