Как получить значение поля ckeditor в модели формы после отправки в Django2.1? - PullRequest
0 голосов
/ 28 марта 2019
  1. Я установил ckeditor.
  2. Помещенный «путь» («ckeditor /», include ('ckeditor_uploader.urls')), «в urls.py
  3. Размещенный« »ckeditor ', "в INTALLED_APPS в settings.py
  4. Помещается

     ##  CKEDITOR CONFIGURATION ##
     ####################################
     CKEDITOR_JQUERY_URL = 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'
    
     CKEDITOR_UPLOAD_PATH = 'uploads/help/'
     CKEDITOR_IMAGE_BACKEND = "pillow"
    
     CKEDITOR_CONFIGS = {
            'default': {
                  'toolbar': None,
                  'height':100,
                  'width':500,
             },
     }
    
    ###################################
    

    в конец файла в settings.py

  5. models.py:

    from ckeditor.fields import RichTextField
    from django.db import models
    class Help(models.Model):
       title = models.CharField(max_length=255)
       description = RichTextField(blank=True, null=True) #models.TextField()
       class Meta:
           managed = False
           db_table = 'help'
       def __str__(self):
           return self.title
    
  6. forms.py

    from ckeditor.widgets import CKEditorWidget
    from django import forms
    class HelpForm(ModelForm):
        description = forms.CharField(widget=CKEditorWidget())
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
    
        class Meta:
            model = Help
            exclude = ('created_by', 'updated_by', 'created', 'updated')
    
  7. help.html

    {% load i18n static widget_tweaks %}
    <form id="newFrm" method="post" novalidate>
    {% csrf_token %}
    {{ form.media }}
    
      <div class="col-lg-6 col-md-8 col-sm-12 col-xs-24">
        <div class="form-group">
          <label for="">description <span class="required">*</span></label>
           {% if form.title.errors %}
            {% render_field form.description class="form-control ckeditor error" placeholder="Description" %}
            <div class="error-msg show  form-error">
            {{ form.description.errors}}
            </div> 
            {% else %}
            {% render_field form.description class="form-control ckeditor" placeholder="Description" %}
            {% endif %} 
        </div>
      </div>
    

Вопрос: Я не получаю значение POST описания после отправки формы (в views.py).Любая помощь будет оценена.Заранее спасибо.

1 Ответ

0 голосов
/ 29 марта 2019

Я нашел решение.Пожалуйста, поместите приведенный ниже скрипт в ваш код.

    for (var i in CKEDITOR.instances) {
            CKEDITOR.instances[i].on('change', function() { 
                    CKEDITOR.instances[i].updateElement() });
    }

Этот код обновит необработанные данные ckeditor в соответствующие текстовые области.Теперь, отправив форму, вы получите данные в POST.

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