首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django编辑Froala窗体的视图/模板

Django编辑Froala窗体的视图/模板
EN

Stack Overflow用户
提问于 2022-09-24 19:01:03
回答 1查看 59关注 0票数 0

我想使用弗洛拉编辑 (或类似的编辑器)在我的网站上创建和编辑文章。我可以用这个表单创建任何文章/可以从编辑器获得数据,但是我不知道如何通过视图函数将来自DB的文章数据插入到模板中编辑器的{{ form }}中。怎么做?在这种情况下,是否还有其他更合适的表单/编辑器?

forms.py

代码语言:javascript
复制
from froala_editor.widgets import FroalaEditor
    
class FroalaModelForm(forms.ModelForm):
        content = forms.CharField(widget=FroalaEditor)
    
        class Meta:
            model = FroalaModel
            fields = ('name', 'content')

views.py

代码语言:javascript
复制
def post_froala_form(request):
    form = FroalaModelForm(request.POST)
    if form.is_valid():
        form = form.save(commit=False)
        form.name = request.POST['name']
        form.content = request.POST['content']
        form.save()
        return HttpResponseRedirect(reverse('polls:froala_index'))
    else:
        return render(request, 'polls/froala template.html', {
            'form': form
        })

froala_template.html

代码语言:javascript
复制
{% load crispy_forms_filters %}
{% load crispy_forms_tags %}

{% block title %}
    Froala template
{% endblock %}

{% block content %}
    <form action="{% url 'polls:post_froala_form' %}" method="post">
        {% csrf_token %}
        {{ form.media }}
        {{ form|crispy }}
        <button type="submit">Send form</button>
    </form>
{% endblock content %}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-23 20:53:26

我用Django表单决定了这一点,在参数"instance“中从数据库中指示了一个字段:

views.py

代码语言:javascript
复制
def question_create_update_form(request, question_id=None):
    if question_id:
        question = Question.objects.get(id=question_id)
        if question.author_name == request.user.username:
            form = AddQuestionForm(instance=question)
            return render(request, 'polls/add_question.html', {
                'title': question.question_title,
                'choices': question.choice_set.all(),
                'tags': question.tag.all(),
                'question_id': question_id,
                'form': form

            })
        else:
            return HttpResponseRedirect(reverse('polls:create_question'))
    else:
        return render(request, 'polls/add_question.html', {
            'form': AddQuestionForm
        })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73839855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档