django tinymce显示问题

问题描述 投票:0回答:1

我在django管理员中安装了tinymce,以便能够在测验应用程序的问题中插入代码/视频等。但是,当我去显示问题时,它会出现在代码中,就像在我的tinymce工具中写“ c”一样,在显示的问题中,它将如下图所示:enter image description here

quiz / admins.py

from django.contrib import admin
from .models import Questions
from tinymce.widgets import TinyMCE
from django.db import models



# Register your models here.

class QuestionsAdmin(admin.ModelAdmin):
    fields = [
    'question',
    'optiona',
    'optionb',

    ]

    formfield_overrides = {
        models.TextField: {'widget': TinyMCE()},
    }



admin.site.register(Questions, QuestionsAdmin)

quiz / models.py

from django.db import models
from django.conf import settings

# Create your models here.

class Questions(models.Model):
    CAT_CHOICES = (
    ('datascience', 'DataScience'),
    ('productowner', 'ProductOwner'),
    ('businessanalyst', 'BusinessAnalyst'),
    #('sports','Sports'),
    #('movies','Movies'),
    #('maths','Maths'),
    #('generalknowledge','GeneralKnowledge'),


)
    question = models.TextField(max_length = 850)
    optiona = models.TextField(max_length = 800)
    optionb = models.TextField(max_length = 800)
    optionc = models.TextField(max_length = 800)
    optiond = models.TextField(max_length = 800)
    answer = models.TextField(max_length = 850)
    catagory = models.TextField(max_length=20, choices = CAT_CHOICES)

    class Meta:
        ordering = ('-catagory',)

    def __str__(self):
        return self.question

piattaforma / settings.py

TINYMCE_DEFAULT_CONFIG = {
    'height': 360,
    'width': 1120,
    'cleanup_on_startup': True,
    'custom_undo_redo_levels': 20,
    'selector': 'textarea',
    'theme': 'modern',
    'plugins': '''
            textcolor save link image media preview codesample contextmenu
            table code lists fullscreen  insertdatetime  nonbreaking
            contextmenu directionality searchreplace wordcount visualblocks
            visualchars code fullscreen autolink lists  charmap print  hr
            anchor pagebreak
            ''',
    'toolbar1': '''
            fullscreen preview bold italic underline | fontselect,
            fontsizeselect  | forecolor backcolor | alignleft alignright |
            aligncenter alignjustify | indent outdent | bullist numlist table |
            | link image media | codesample |
            ''',
    'toolbar2': '''
            visualblocks visualchars |
            charmap hr pagebreak nonbreaking anchor |  code |
            ''',
    'contextmenu': 'formats | link image',
    'menubar': True,
    'statusbar': True,
    }

piattaforma / urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('core.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
    path('accounts/', include('accounts.urls')),
    path('quiz/', include('quiz.urls')),
    path('tinymce/', include('tinymce.urls')),


]
python django tinymce
1个回答
0
投票

大多数Web框架默认都会转义呈现给页面的HTML,以停止将意外代码意外注入页面。您可以使用Django的安全过滤器阻止这种情况的发生。在模板中,您将执行以下操作:

{{ instance.the_html_field|safe }}

https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#safe

© www.soinside.com 2019 - 2024. All rights reserved.