有没有办法在管理面板中更改textfield django的默认文本编辑器?

时间:2015-12-08 06:38:09

标签: python django

我正在研究django上的这个项目,我有这个模型,它有很少的字段和文本字段。我想知道的是,无论如何我可以在django管理面板中编辑文本字段的外观,这样我就可以编辑我在该文本字段中写的内容,就像单词中的那个,你可以选择使文本变粗或插入链接和图像 我尝试了这个名为grappelli的模块,但它只是改变了我的管理面板添加颜色和装饰材料的外观。

class Heading(models.Model):
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=5000)
    content = models.TextField()
    date = models.DateField(default=datetime.now())



def __str__(self):
    return self.title

2 个答案:

答案 0 :(得分:2)

使用ckeditor

https://github.com/django-ckeditor/django-ckeditor

shell上的


pip install django-ckeditor

在settings.py上:
添加' ckeditor'在INSTALLED_APPS

在models.py上:

from ckeditor.fields import RichTextField
class Heading(models.Model):
    content = RichTextField()

答案 1 :(得分:0)

您可以使用 django-summernote
https://github.com/summernote/django-summernote

第1步:安装django-summernote

pip install django-summernote

第2步:将django_summernote添加到 settings.py 中的 INSTALLED_APP 中。

INSTALLED_APPS = [
    'django_summernote',

    '...',
  ]


第3步:将django_summernote.urls添加到项目 urls.py

from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
# ...
urlpatterns = [
    ...
    path('summernote/', include('django_summernote.urls')),
    ...
]
if settings.DEBUG:
     urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

第4步:在 settings.py

中输入 MEDIA_URL
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

第5步:在 admin.py

from django.contrib import admin
from django_summernote.admin import SummernoteModelAdmin
from .models import Heading

class HeadingAdmin(SummernoteModelAdmin):
    summernote_fields = ('content',)

admin.site.register(Heading, HeadingAdmin)


步骤6 :运行数据库迁移

python manage.py migrate