Parcourir la source

handle server-side form errors

checktheroads il y a 5 ans
Parent
commit
59d8c0b321

+ 26 - 0
netbox/templates/utilities/render_errors.html

@@ -0,0 +1,26 @@
+{% load form_helpers %}
+
+{% if form.errors or form.non_field_errors %}
+<div class="alert alert-danger mt-3" role="alert">
+  <h4 class="alert-heading">Errors</h4>
+  <hr />
+  <div class="ps-2">
+    {% if form.errors %}
+    {% for field_name, errors in form.errors.items %}
+    {% with field=form|getfield:field_name %}
+    <strong>{{ field.label }}</strong>
+        <ul>
+        {% for error in errors %}
+            <li>{{ error }}</li>
+        {% endfor %}
+        </ul>
+    {% endwith %}
+    {% endfor %}
+    {% endif %}
+    {% if form.non_field_errors %}
+    <hr />
+    {{ form.non_field_errors }}
+    {% endif %}
+  </div>
+</div>
+{% endif %}

+ 10 - 0
netbox/utilities/templatetags/form_helpers.py

@@ -54,3 +54,13 @@ def widget_type(field):
         return field.field.widget.__class__.__name__.lower()
     else:
         return None
+
+
+@register.inclusion_tag('utilities/render_errors.html')
+def render_errors(form):
+    """
+    Render form errors, if they exist.
+    """
+    return {
+        "form": form
+    }