models.py的内容如下:
from django.db import models
# Create your models here.
class Post(models.Model):
title = models.CharField(max_length=256)
pub_date = models.DateTimeField()
image = models.ImageField(upload_to='media/')
body = models.TextField()
def __str__(self):
return self.title
def pub_date_pretty(self):
return self.pub_date.strftime('%A %d %B %Y @ %-I:%M:%S %p')
def summary(self):
return self.body[:350]
第5行到第8行为我的博客仪表板初始化模型类变量。我的信息中心looks like this。有标题,发布日期,图片和正文。 Udemy老师建议咨询the official Django doc for field types/options。我不确定我是否真的了解其中的大部分内容。那里有太多信息。我对所有人的问题是:哪个字段选项或字段类型为正文启动HTML解析器?我的意思是,当我开始创建新博客文章时,如何使用HTML格式按钮(如粗体,下划线和斜体)创建富文本?不是我真正关心的按钮。我只想解析我的HTML标记。注意HTML标签I’ve circled in red here。如何获取h5,hr和em进行解析?是否有字段选项/类型?我在“模型”字段文档中看不到它。
答案 0 :(得分:0)
您必须将外部库用于RTF编辑器。 有许多可用的富文本编辑器。 让我们以DJANGO-CKEDITOR为例
安装
pip install django-ckeditor
将ckeditor添加到您的INSTALLED_APPS
设置。
运行collectstatic管理命令:$ ./manage.py collectstatic
。这会将静态CKEditor所需的媒体资源复制到STATIC_ROOT
设置所指定的目录中。
将此添加到您的settings.py
CKEDITOR_BASEPATH = "/my_static/ckeditor/ckeditor/" CKEDITOR_UPLOAD_PATH = "uploads/"
urls.py
文件中:
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
TextField()
更改为RichTextField()
from django.db import models from ckeditor.fields import RichTextField # Create your models here. class Post(models.Model): title = models.CharField(max_length=256) pub_date = models.DateTimeField() image = models.ImageField(upload_to='media/') body = models.RichTextField()
运行python.manage.py makemigrations
和python.manage.py migrate
最后在您的admin.py
文件中
from django import forms from django.contrib import admin from ckeditor.widgets import CKEditorWidget from .models import Post class PostAdminForm(forms.ModelForm): content = forms.CharField(widget=CKEditorWidget()) class Meta: model = Post fields = '__all__' class PostAdmin(admin.ModelAdmin): form = PostAdminForm admin.site.register(Post, PostAdmin)