有没有办法在表单中实现 Django 模板

Is there a way to implement Django templates in a form

我有一个 Django 表单,管理员可以在其中创建用户特定的页面,我希望管理员在表单中添加 {{username}} 作为输入,这样当创建的页面的内容呈现给用户时,标签{{username}} 成为用户名。

这是我到目前为止尝试过的方法;

views.py:

class CreateCampaignView(LoginRequiredMixin, FormView):
    login_url = reverse_lazy('Portal:login')
    template_name = 'Portal/PostForm.html'
    form_class = PostForm
    success_url = reverse_lazy('Portal:feed')

    def form_valid(self, form, **kwargs):
        form.instance.Subject = form.cleaned_data['Subject']
        form.instance.Text_content = form.cleaned_data['Text_content']
        form.instance.HTML_content = form.cleaned_data['HTML_content']
        template = form.instance.HTML_content
        
        context = Context(dict({'username':'xxxx', 'email':'Test@email.com'}))
        template.render(context)

        return super().form_valid(form, **kwargs)

此方法返回错误“str object does not have render”,因为 HTML_content 是 forms.py 中的 Text_filed,我找不到解决方法工作。

您应该为表单中的数据创建一个 Template,因此:

from django.template import <strong>Template</strong>, Context

template = <strong>Template(</strong>form.cleaned_data['HTML_content']<strong>)</strong>
context = Context({'username': 'xxxx'}) # instead of xxxx, users.objects.filter(username='John')
rendered: str = template.render(context)