Django проблема отображения дисплея - PullRequest
0 голосов
/ 17 апреля 2020

Я установил tinymce в моем django администраторе, чтобы иметь возможность вставлять код / ​​видео и т.д. c в мои вопросы в моем приложении для викторины. Но когда я go для отображения вопросов, он появляется в коде, как если бы в моем инструменте tinymce я написал «c», в отображаемом вопросе это будет выглядеть следующим образом в pi c:

enter image description here

викторина / 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)

викторина / 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)
    category = models.TextField(max_length=20, choices = CAT_CHOICES)

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

    def __str__(self):
        return self.question

Пятна информации / настройки. 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')),


]

1 Ответ

0 голосов
/ 17 апреля 2020

Большинство веб-фреймворков экранируют HTML, отображаемые на странице по умолчанию, чтобы остановить случайное внедрение неожиданного кода на страницу. Вы можете использовать безопасный фильтр Django, чтобы предотвратить это. В вашем шаблоне вы бы сделали что-то вроде этого:

{{ instance.the_html_field|safe }}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...