我想使用弗洛拉编辑 (或类似的编辑器)在我的网站上创建和编辑文章。我可以用这个表单创建任何文章/可以从编辑器获得数据,但是我不知道如何通过视图函数将来自DB的文章数据插入到模板中编辑器的{{ form }}
中。怎么做?在这种情况下,是否还有其他更合适的表单/编辑器?
forms.py
from froala_editor.widgets import FroalaEditor
class FroalaModelForm(forms.ModelForm):
content = forms.CharField(widget=FroalaEditor)
class Meta:
model = FroalaModel
fields = ('name', 'content')
views.py
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
{% 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 %}
发布于 2022-10-23 12:53:26
我用Django表单决定了这一点,在参数"instance“中从数据库中指示了一个字段:
views.py
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
})
https://stackoverflow.com/questions/73839855
复制相似问题