колба с массой: не заменяет текстовую форму - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь заставить TinyMCE заменить текстовую область в форме, генерируемой wtforms в колбе. После официального запуска и этой статьи здесь: https://www.kevin7.net/post_detail/2,, но все равно он не заменяется.

Я пробовал как облачную, так и локальную установку ..

HTML:

{% extends "base.html" %}
{% block content %}
    <script src="https://cdn.tiny.cloud/1/removedkey/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
    <!-- <script src="{{ url_for('static', filename='tinymce/tinymce.min.js') }}"></script> -->
    <script>
        tinymce.init({
        selector: '#clientinfo',
        height: 500,
        menubar: false,
        plugins: [
            'advlist lists charmap print preview hr anchor pagebreak spellchecker',
            'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime nonbreaking',
            'save table contextmenu directionality template paste textcolor codesample'
        ],
        toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | print preview media fullpage | forecolor backcolor | codesample',
        codesample_languages: [
            {text: 'HTML/XML', value: 'markup'},
            {text: 'JavaScript', value: 'javascript'},
            {text: 'CSS', value: 'css'},
            {text: 'Processing', value: 'processing'},
            {text: 'Python', value: 'python'}
        content_css: [
          '//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
          '//www.tiny.cloud/css/codepen.min.css'
        ]
        });
    </script>
    <h1>Hi, {{ current_user.name }}!</h1>
        <form action="" method="post">
            {{ form.hidden_tag() }}
                <p>
                    {{ form.clientname.label }}<br>
                    {{ form.clientname(cols=32, rows=4) }}<br>
                    {% for error in form.clientname.errors %}
                    <span style="color: red;">[{{ error }}]</span>
                    {% endfor %}
                </p>
                <p>
                    {{ form.clientss.label }}<br>
                    {{ form.clientss(cols=32, rows=4) }}<br>
                </p>
                <p>
                    {{ form.clientemail.label }}<br>
                    {{ form.clientemail(cols=32, rows=4) }}<br>
                    {% for error in form.clientemail.errors %}
                    <span style="color: red;">[{{ error }}]</span>
                    {% endfor %}
                </p>
                <p>
                    {{ form.clientphone.label }}<br>
                    {{ form.clientphone(cols=32, rows=4) }}<br>
                    {% for error in form.clientphone.errors %}
                    <span style="color: red;">[{{ error }}]</span>
                    {% endfor %}
                </p>
                <p>
                    {{ form.clientaddress.label }}<br>
                    {{ form.clientaddress(cols=32, rows=4) }}<br>
                </p>
                <p>
                    {{ form.clientzip.label }}<br>
                    {{ form.clientzip(cols=32, rows=4) }}<br>
                </p>
                <p>
                    {{ form.clientcity.label }}<br>
                    {{ form.clientcity(cols=32, rows=4) }}<br>
                </p>
                <p>
                    {{ form.clientinfo.label }}<br>
                    {{ form.clientinfo(cols=32, rows=4) }}<br>
                </p>
                <p>
                    {{ form.submit() }}  {{ form.cancel() }}
                </p>
        </form>
{% endblock %}

Идентификатор для текстовой области: #clientinfo, генерируется автоматически.

Вот код формы в колбе:

class PostForm(FlaskForm):
    clientname = StringField('Name', validators=[Optional()])
    clientss = StringField('Social Security number', validators=[Optional()])
    clientemail = StringField('Email', validators=[Optional()])
    clientphone = StringField('Phone', validators=[Optional()])
    clientaddress = StringField('Address', validators=[Optional()])
    clientzip = StringField('ZIP', validators=[Optional()])
    clientcity = StringField('City', validators=[Optional()])
    clientinfo = TextAreaField('Info',
                               validators=[Optional(), Length(max=2048)])
    submit = SubmitField('Submit')
    cancel = SubmitField('Cancel')

А вотМаршрут:

@app.route('/addpost', methods=['GET', 'POST'])
@login_required
def addpost():
    form = PostForm()
    if form.validate_on_submit():
        if form.submit.data:
            post = Post(clientname=form.clientname.data,
                        clientss=form.clientss.data,
                        clientemail=form.clientemail.data,
                        clientphone=form.clientphone.data,
                        clientaddress=form.clientaddress.data,
                        clientzip=form.clientzip.data,
                        clientcity=form.clientcity.data,
                        clientinfo=form.clientinfo.data,
                        author=current_user)
            db.session.add(post)
            db.session.commit()
            flash('Client data successfully added!')
            return redirect(url_for('addpost'))
        else:
            return redirect(url_for('index'))
    return render_template('addpost.html', title='Add Post', form=form)

1 Ответ

0 голосов
/ 11 ноября 2019

похоже, что я забыл добавить закрывающую скобку в массив codesample_languages (добавлено ], ):

    <script src="https://cdn.tiny.cloud/1/prov7b5xue6vf2iwpm6zycj0cae50umuzim111ex6vu4042f/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
    <!-- <script src="{{ url_for('static', filename='tinymce/tinymce.min.js') }}"></script> -->
    <script>
        tinymce.init({
        selector: '#clientinfo',
        height: 500,
        menubar: false,
        plugins: [
            'advlist lists charmap print preview hr anchor pagebreak spellchecker',
            'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime nonbreaking',
            'save table contextmenu directionality template paste textcolor codesample'
        ],
        toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | print preview media fullpage | forecolor backcolor | codesample',
        codesample_languages: [
            {text: 'HTML/XML', value: 'markup'},
            {text: 'JavaScript', value: 'javascript'},
            {text: 'CSS', value: 'css'},
            {text: 'Processing', value: 'processing'},
            {text: 'Python', value: 'python'}
            ],
        content_css: [
          '//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
          '//www.tiny.cloud/css/codepen.min.css'
        ]
        });
...