簡體   English   中英

Django 表單 help_text 最佳實踐

[英]Django form help_text best practices

我們在代碼審查期間發生了爭執。 在 Django 項目中保存長格式幫助文本的最佳位置在哪里?

情況:我們需要在一個字段中添加相對較長(大約 320 個字符)的幫助文本。 對於表單渲染,我們使用 ModelForm。 對於表單渲染,我們使用引導庫。

意見 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 文件中保留很長的 help_text,而不是 .py
  2. 將來我們可能想要添加 HTML 標簽,最好也將它放在 HTML 文件中。

選項 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。

您如何看待這些選項? 您能否分享您對處理 help_text 的最佳方式的看法?

恕我直言,“現場自動生成”的整個想法太可怕了。 好的,一些字段屬性來自模型,但大多數應該在 HTML 本身中。

django-silhouette項目很好地解決了這個問題,這就是我在當前項目中的目標。

至於問題本身,我會將幫助文本放在 HTML 中,作為臨時解決方案,直到您解決在 HTML 中重復自己的問題(可以使用幫助 django-silhouette 或僅共享 HTML 部分)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM