python 精细化控制Django表单外观
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 精细化控制Django表单外观相关的知识,希望对你有一定的参考价值。
{% load form_tags widget_tweaks %}
{% if form.non_field_errors %}
<div class="alert alert-danger" role="alert">
{% for error in form.non_field_errors %}
<p{% if forloop.last %} class="mb-0"{% endif %}>{{ error }}</p>
{% endfor %}
</div>
{% endif %}
{% for field in form %}
<div class="form-group">
{{ field.label_tag }}
{% render_field field class=field|input_class %}
{% for error in field.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if field.help_text %}
<small class="form-text text-muted">
{{ field.help_text|safe }}
</small>
{% endif %}
</div>
{% endfor %}
from django import template
register = template.Library()
@register.filter
def field_type(bound_field):
return bound_field.field.widget.__class__.__name__
@register.filter
def input_class(bound_field):
css_class = ''
if bound_field.form.is_bound:
if bound_field.errors:
css_class = 'is-invalid'
elif field_type(bound_field) != 'PasswordInput': # password 不能为valid
css_class = 'is-valid'
return 'form-control {}'.format(css_class)
以上是关于python 精细化控制Django表单外观的主要内容,如果未能解决你的问题,请参考以下文章
html 通过Django的部件,调整自定义表单外观
统一 Django 表单媒体
链接、表单和 DOM 元素的 ACL 和外观操作
Django AJAX - 建议
python django Form表单
django官方demo翻译简化版 七(demo终)