Skip to content
Snippets Groups Projects
Commit 4e652448 authored by Art's avatar Art :lizard:
Browse files

Fix render_form_field()

parent c3003f89
No related branches found
No related tags found
No related merge requests found
...@@ -4,14 +4,17 @@ from django.template import defaulttags ...@@ -4,14 +4,17 @@ from django.template import defaulttags
def render_form_field(field): def render_form_field(field):
if field.field.widget.input_type in ['text', 'number', 'email', 'url', 'password']: try:
input_type = field.field.widget.input_type
except AttributeError:
input_type = None
if input_type in ['text', 'number', 'email', 'url', 'password']:
# one of those text-like that support icons # one of those text-like that support icons
out = BulmaFieldMarkup.label(field.label, BulmaFieldMarkup.with_icons(field, field.as_widget())) out = BulmaFieldMarkup.label(field.label, BulmaFieldMarkup.with_icons(field, field.as_widget()))
elif input_type and getattr(BulmaFieldMarkup, input_type, None):
# something else explicitly defined
out = getattr(BulmaFieldMarkup, input_type)(field, field.as_widget())
else: else:
try:
# something implemented explicitly
out = getattr(BulmaFieldMarkup, field.field.widget.input_type)(field, field.as_widget())
except AttributeError:
# fallback default # fallback default
out = BulmaFieldMarkup.label(field.label, BulmaFieldMarkup.div_control(field.as_widget())) out = BulmaFieldMarkup.label(field.label, BulmaFieldMarkup.div_control(field.as_widget()))
return BulmaFieldMarkup.div_field(field, out) return BulmaFieldMarkup.div_field(field, out)
......
...@@ -32,6 +32,7 @@ def bulma_form_fields(form): ...@@ -32,6 +32,7 @@ def bulma_form_fields(form):
def bulma_form_errors(form): def bulma_form_errors(form):
return render_form_errors([str(e) for e in form.non_field_errors()]) return render_form_errors([str(e) for e in form.non_field_errors()])
@register.simple_tag(takes_context=True) @register.simple_tag(takes_context=True)
def bulma_form(context, form, submit_text="OK", submit_class="button is-outlined"): def bulma_form(context, form, submit_text="OK", submit_class="button is-outlined"):
"""Renders whole form, including errors, csrf and a submit button.""" """Renders whole form, including errors, csrf and a submit button."""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment