Django形成了help_text最佳实践

时间:2015-11-25 11:56:17

标签: python django

我们在代码审查期间遇到了争论。在django项目中保留长形帮助文本的最佳位置在哪里?

情况:我们需要在字段中添加相对较长(约320个字符)的帮助文本。对于表单呈现,我们使用的是ModelForm。对于表单呈现,我们使用bootstrap库。

意见A :将其直接添加到HTML模板中。

# template.html
<div class="form-group">
     <label for="{{ form.field.id_for_label }}">{{ form.field.label }}</label>
    {{ form.field }}
    <span class="help-block">
        Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text.
    </span>
</div>

优点:

  1. 最好将长帮助文本保存在html文件中,而不是.py
  2. 将来我们可能想要添加HTML标签,最好将它放在HTML文件中。
  3. 选项B :将其添加到ModelForm的Meta。

    # forms.py
    help_texts = {
        'field': 'Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text Help text.'
    }
    # template.html
    {% bootstrap_field form.field %}
    

    优点:

    1. 字段是自动生成的,不是硬编码的。
    2. 将来我们也可以使用mark_safe()在其中包含HTML。
    3. 您如何看待这些选择?您能否分享您对处理help_text的最佳方式的看法?

1 个答案:

答案 0 :(得分:-1)

恕我直言,“现场自动生成”的整个想法是可怕的。好的,一些字段属性来自模型,但大多数应该在HTML本身。

项目django-silhouette很好地解决了这个问题,而这正是我在当前项目中的目标。

至于问题本身,我将帮助文本放在HTML中作为临时解决方案,直到你解决了在HTML中重复自己的问题(可以使用帮助django-silhouette或只是共享HTML部分) )。