Django forms.form头字段

时间:2016-09-04 14:12:11

标签: django

我希望在forms.form中有一个字段类型,它只接受要显示的标题文本,因此HTML将类似于:

  

这是本节的标题文字

     

问题

     

问题

     

问题

     

另一个标题

     

问题

     

问题

这个想法是我使用仅针对问题页面的模型动态地声明表单中的所有问题,我需要一些部分的标题来说明这些部分的内容。到目前为止,即时插入问题一切顺利,我需要最后一点显示代码才能使其正常运行。

为了提供更多信息,这是我的方法:

  1. 创建表单的管理员在管理界面中创建问题
  2. 然后将问题添加到问题表单
  3. 当用户转到问题页面时,它会使用forms.form
  4. 呈现包含问题的页面

    使用以下方式声明问题:

      

    self.fields [' id'] = forms.CharField(                       MAX_LENGTH = 100,                       label = text,required = q.question.required)

    我想要的是用HeaderField替换上面的行,HeaderField只有H1 / 2/3/4 ......等容器中的头文本。

    所以我想要的理想语法是

      

    self.fields [' id'] = forms.HeaderField(label = text,type = 1)

    如果类型1是H1,则2将是H2 ......等等。

1 个答案:

答案 0 :(得分:0)

我最后使用另一个答案在现场找出解决方案。解决方案只是标记标签对HTML是安全的,然后我可以直接添加HTML并在之后设置样式。

from django.utils.safestring import mark_safe

self.fields['id'.format(q.question.id)] = forms.CharField(
                widget=forms.Textarea,
                max_length=1000,
                label=mark_safe(text), required=q.question.required)

在我这样做之后,我可以添加H1或BR等内容并直接设置样式。它有点笨重,但至少它适用于我已经拥有的代码。