Câu trả lời đúng là như sau:
abc = TextField('abc', validators=[Required(), Length(min=3, max=30)], description="test")
Như người ta có thể đọc trong documenatation:
description – A description for the field, typically used for help text.
Sau đó, trong mẫu của bạn:
{% import 'forms.html' as forms %}
{% for field in form %}
{{ forms.render_field(field) }}
{% endfor %}
đâu render_field là một macro được định nghĩa trong forms.html:
{% macro render_field(field) -%}
{% if field.type == 'CSRFTokenField' %}
{{ field }}
{% if field.errors %}
<div class="warning">You have submitted an invalid CSRF token</div>
{% endif %}
{% elif field.type == 'HiddenField' %}
{{ field }}
{# any other special case you may need #}
{% else %}
<div class="form-group">
<label for="{{ field.label.field_id }}" class="col-sm-2 control-label">{{ field.label.text }}</label>
<div class="col-sm-10">
{{ field(placeholder=field.description) }}
{% if field.errors %}
<div class="alert alert-danger" role="alert">
{% for err in field.errors %}
<p>{{ err|e }}</p>
{% endfor %}
</div>
{% endif %}
</div>
</div>
{% endif %}
{%- endmacro %}
u là đúng, trình giữ chỗ phải có kiểu và không được thêm vào các yếu tố cấu trúc. –
Nhưng nếu tôi sử dụng macro và được gọi bên trong một vòng lặp lặp qua các trường biểu mẫu. Làm thế nào tôi có thể kiểm tra bên trong vĩ mô mà một trường có thuộc tính html bổ sung? – Marconi
Trình giữ chỗ giống với nhãn. Đó là, do đó, nội dung và không phải là phong cách. Đặt nó trong một mẫu làm cho nó không thể có các khuôn mẫu chung chung. – Milimetric