Django-Summernote 编辑器未在管理员中显示
Posted
技术标签:
【中文标题】Django-Summernote 编辑器未在管理员中显示【英文标题】:Django-Summernote editor not showing in Admin 【发布时间】:2021-08-14 09:12:58 【问题描述】:我有一个用于后期写作的 Django 应用程序。我已将 django-summernote 集成到应用程序中,但我遇到了一个问题,即 django summernote 小部件未显示在管理面板中。它在我的模板中运行良好且流畅,但未显示在管理面板中。请帮帮我。
settings.py
INSTALLED_APPS += ('django_summernote', )
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
X_FRAME_OPTIONS = 'SAMEORIGIN'
SUMMERNOTE_CONFIG =
'iframe': False,
"jquery": "summernoteJQuery",
'summernote':
'width': '100%'
SUMMERNOTE_THEME = 'bs3'
admin.py
from django.contrib import admin
from .models import Post, Comment
from django_summernote.admin import SummernoteModelAdmin
class PostAdmin(SummernoteModelAdmin):
summernote_fields = ('text',)
admin.site.register(Post,PostAdmin)
admin.site.register(Comment)
urls.py
from django.urls import include
# ...
urlpatterns = [
...
path('summernote/', include('django_summernote.urls')),
...
]
...
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
screenshotAdminPanel
After 'Iframe = True'
【问题讨论】:
你能在这里展示你的 Post 模型吗?你想为summernote启用哪个字段?该字段必须是 TextField。 是 "text = models.TextField(verbose_name ="Blog Content",) " 在您的屏幕截图中,我没有看到任何名为 text 的字段。 这是一个verbose_name,我应该使用该字段名称作为“summernote_fields”中的参数 是的,使用直接字段名称 【参考方案1】:如果您在 Django 管理面板中未使用 BootStrap 或外部 CSS 框架,则必须设置 'iframe': True,
否则您必须将其设置为 False
检查此文档。 https://github.com/summernote/django-summernote
使用 SummernoteWidget - iframe 模式,默认
'iframe': True,
# Or, you can set it to `False` to use SummernoteInplaceWidget by default - no iframe mode
# In this case, you have to load Bootstrap/jQuery sources and dependencies manually.
# Use this when you're already using Bootstrap/jQuery based themes.
'iframe': False,
【讨论】:
我在更新“'iframe': True”后添加了截图,但没有任何反应,文本区域的空间变大了,现在也没有显示在模板中。 感谢您的帮助。它由 "'iframe' : True" 修复。 第二张截图发生了什么 哦,这只是因为我认为可以解决此问题的代码 sn-p。以上是关于Django-Summernote 编辑器未在管理员中显示的主要内容,如果未能解决你的问题,请参考以下文章
Summernote 编辑器未在 django 管理页面上显示任何内容
如何将 Bootstrap 4 添加到库 django-summernote?