模板中的RichTextField不起作用- Django

quhf5bfb  于 2023-03-13  发布在  Go
关注(0)|答案(1)|浏览(158)

我正在尝试在Django模板中显示RichTextField。在管理面板中可以工作,但在模板中不行。我的模板名为create.html:

{% block main %}
    <div class="blocker" style="height: 100px;"></div>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Absenden</button>
    </form>
{% endblock %}

Forms.py:

class Create(forms.ModelForm):
    content = RichTextField()
    title = forms.CharField(label='title', max_length=100)

    class Meta:
        model = Post
        fields = ['title', 'content']

Views.py

def create(request):
    if request.method == 'POST':
        form = Create(request.POST)
        if form.is_valid():
            title = form.cleaned_data['title']
            content = form.cleaned_data['content']
            Post(title=title, content=content).save()
            return redirect("../blog")
    else:
        form = Create()
    return render(request, 'create.html', {'form': form})

我在表格里尝试了不同的东西。

elcex8rz

elcex8rz1#

假设您已经使用pip install django-ckeditor安装了软件包,并且将其包含在settings.py文件的INSTALLED_APPS列表中。
尝试使用{{ form.media }}标签,其中包括必要的脚本和样式表,所以在模板中:

{% block main %}
    <div class="blocker" style="height: 100px;"></div>
    <form method="POST">
        {% csrf_token %}
        {{ form.as_p }}
        {{ form.media }}
        <button type="submit">Absenden</button>
    </form>
{% endblock %}

forms.py中,导入CKEditorWidget并使用它覆盖内容字段的默认小部件,如下所示:

from ckeditor.widgets import CKEditorWidget

class Create(forms.ModelForm):
    content = forms.CharField(widget=CKEditorWidget())
    title = forms.CharField(label='title', max_length=100)

    class Meta:
        model = Post
        fields = ['title', 'content']

相关问题