2015-12-14 31 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 
相關問題