[英]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.