簡體   English   中英

如何在django管理面板上的文本字段上傳圖像,就像我們在wordpress中一樣

[英]How can I upload an image on an textfield from django admin panel like we do in wordpress

有沒有什么方法可以在管理面板上將django textfield中的圖像上傳,就像我們在wordpress上選擇上傳圖像一樣。 我使用ckeditor作為我的文本域編輯器,它允許我插入鏈接並使文本變為粗體,有一個上傳圖像選項可用,但它要求我提供圖像URL而不是讓我從我的系統瀏覽圖像文件。 以下是我的models.py代碼的一部分:

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

下面是一些圖片,以顯示我現在得到的: 發短信的管理員小組

我得到的選擇

您可以使用django-ckeditor的RichTextUploadingField 你需要先在models.py中導入它

from ckeditor.fields import RichTextUploadingField

現在在你的模型中,你可以這樣做

content = RichTextUploadingField()

默認情況下, RichTextUploadingField允許您上傳任何文件。 您還可以將此字段限制為僅通過將此行添加到settings.py 來上傳圖像

CKEDITOR_ALLOW_NONIMAGE_FILES = False

像WordPress一樣上傳圖像並不是一個簡單的過程,盡管實現起來很簡單。

當您在WordPress中上傳圖像時,在后台WordPress將圖像保存在服務器上(使用AJAX),然后獲取其鏈接並在文本編輯器中顯示它。

由於文本編輯器不支持文件上載,因此您需要自己實現。

但是,當django-ckeditor app支持文件上傳時,為什么還要煩惱django-ckeditor 查看文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM