2015-12-14 30 views
3

做有什么办法,我可以从管理面板像我们做的wordpress我们得到选择要上传图片uplaod在Django文本框的图像。我已经使用ckeditor作为我的文本编辑器,它可以让我插入链接和使文本加粗,有一个上传图像选项可用,但它问我图像的网址,而不是要求我从我的系统浏览图像文件。下面是部分下面我models.py代码如何上传从Django管理面板中的文本框的图像就像我们在WordPress

from tinymce.models import HTMLField 
from ckeditor.fields import RichTextField 
from django.db import models 
from datetime import datetime 
from django.template.defaultfilters import slugify 
from unidecode import unidecode 
from django.template import defaultfilters 




class Category(models.Model): 
    name = models.CharField(max_length=128,unique=True) 
    slug = models.SlugField(unique=True, null=True, blank=True) 


    def save(self, *args, **kwargs): 
     self.slug = slugify(self.name) 
     super(Category, self).save(*args, **kwargs) 

    def __str__(self): 
     return self.name 

class Heading(models.Model): 
    category = models.ForeignKey(Category) 
    title = models.CharField(max_length=5000) 
    content = RichTextField() 
    image= models.ImageField(null=True,blank=True) 
    date = models.DateField(default=datetime.now()) 
    time = models.TimeField(default=datetime.now()) 
    slug = models.SlugField(unique=True, null=True, blank=True) 

    def save(self, *args, **kwargs): 
     self.slug = defaultfilters.slugify(unidecode(self.title)) 
     super(Heading, self).save(*args, **kwargs) 



    def __str__(self): 
     return self.title 

一些图像显示什么我得到现在 admin panel for texteditor

options i get

回答

0

像WordPress这样的上传图片不是一个简单的过程,尽管实现起来很简单。

当您上传在WordPress的图像,在WordPress后台服务器上保存的图像(使用AJAX),然后取其链接,并将其显示在文本编辑器。

因为文本编辑器不支持文件上传,你需要自己实现。

但何必当django-ckeditor应用程序支持文件上传。 See docs

2

您可以使用django-ckeditor的RichTextUploadingField。 您需要在您的models.py先导入它

from ckeditor.fields import RichTextUploadingField 

现在在你的模型,你可以像这样

content = RichTextUploadingField() 

默认情况下RichTextUploadingField允许你上传的任何文件。你也可以限制本场只添加这一行到您的settings.py上传图片

CKEDITOR_ALLOW_NONIMAGE_FILES = False 
相关问题