register = EasyLibrary() def render_form(context, form, method='post', submit_text='', action='', class_name='', id='', no_csrf=False): ''' Tag for form rendering. If the ``method`` is ``inner``, ``<form></form>`` tags and submit button are not rendered. ''' return {'form': form, 'method': method, 'submit_text': submit_text, 'action': action, 'class_name': class_name, 'id': id, 'no_csrf': no_csrf} register.easyinctag(render_form, template_name='common_tags/render_form.html', takes_context=True) def render_messages(context, messages): ''' Tag for messages rendering. ''' return {'messages': messages} register.easyinctag(render_messages, template_name='common_tags/render_messages.html') @register.filter('checkbox_or_radio') def checkbox_or_radio(field): ''' Test whether field's widget is ``CheckboxInput`` or ``RadioInput`` ''' return field.field.widget.__class__.__name__ in ('CheckboxInput', 'RadioInput')