为啥 Django-Summernote 会阻止 prepopulated_fields 工作?

Posted

技术标签:

【中文标题】为啥 Django-Summernote 会阻止 prepopulated_fields 工作?【英文标题】:Why does the Django-Summernote prevents prepopulated_fields from working?为什么 Django-Summernote 会阻止 prepopulated_fields 工作? 【发布时间】:2020-04-20 19:52:04 【问题描述】:

我注意到我愿意在 Django Admin 中使用的 Django-Summernote 会阻止 PostAdmin 正常工作。 一旦我尝试用 Summernote 替换默认内容字段,Auto-Slug 就会停止工作,并且大多数已发布内容的文本都不会显示。我进行了快速搜索,不幸的是,我无法找到解决此问题的方法。因此,如果你们告诉我出了什么问题,我会很高兴。

这是我的 admin.py

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


class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'status','created_on')
    list_filter = ("status",)
    search_fields = ['title', 'content']
    prepopulated_fields = 'slug': ('title',)




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


admin.site.register(Post, PostAdmin)

【问题讨论】:

为什么有 2 个不同的 PostAdmin 类?只保留第一个,但继承自 SummernoteModelAdmin 并在其中定义 summernote_fields @OlegRusskin 非常感谢您的帮助:) 【参考方案1】:

SummernoteModelAdmin 具有 ModelAdmin 的功能,因此无需创建两次 PostAdmin 类。只需将 PostAdmin 类中的 admin.ModelAdmin 替换为 SummernoteModelAdmin,并将 summernote_fields 变量添加到现有变量中,如下所示:

class PostAdmin(SummernoteModelAdmin):
    list_display = ('title', 'slug', 'status', 'created_on')
    list_filter = ("status",)
    search_fields = ['title', 'content']
    prepopulated_fields = 'slug': ('title',)
    summernote_fields = ('content',)

【讨论】:

以上是关于为啥 Django-Summernote 会阻止 prepopulated_fields 工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在模板中使用 django-summernote

为啥 Sleep() 函数会阻止整个循环工作?

如何将 Bootstrap 4 添加到库 django-summernote?

SwiftUI - 为啥 contentShape 会阻止单击叠加层?

为啥masksToBounds = YES会阻止CALayer阴影?

为啥 JavaScript 会阻止 CSS 动画和过渡?