@register.tag(name='crispy')
def do_uni_form(parser, token):
 token = token.split_contents()
 form = token.pop(1)
 helper = None
 template_pack = ("'%s'" % get_template_pack())
 try:
  helper = token.pop(1)
 except IndexError:
  pass
 try:
  template_pack = token.pop(1)
 except IndexError:
  pass
 if ((helper is not None) and isinstance(helper, string_types) and (("'" in helper) or ('"' in helper))):
  template_pack = helper
  helper = None
 if (template_pack is not None):
  template_pack = template_pack[1:(-1)]
  ALLOWED_TEMPLATE_PACKS = getattr(settings, 'CRISPY_ALLOWED_TEMPLATE_PACKS', ('bootstrap', 'uni_form', 'bootstrap3', 'bootstrap4'))
  if (template_pack not in ALLOWED_TEMPLATE_PACKS):
   raise template.TemplateSyntaxError(("crispy tag's template_pack argument should be in %s" % str(ALLOWED_TEMPLATE_PACKS)))
 return CrispyFormNode(form, helper, template_pack=template_pack)

@ register . tag ( name = 'crispy' ) def do_uni_form ( parser , token ) : token = token . split_contents ( ) form = token . pop ( 1 ) helper = None template_pack = ( "'%s'" % get_template_pack ( ) ) try : helper = token . pop ( 1 ) except IndexError : pass try : template_pack = token . pop ( 1 ) except IndexError : pass if ( ( helper is not None ) and isinstance ( helper , string_types ) and ( ( "'" in helper ) or ( '"' in helper ) ) ) : template_pack = helper helper = None if ( template_pack is not None ) : template_pack = template_pack [ 1 : ( - 1 ) ] ALLOWED_TEMPLATE_PACKS = getattr ( settings , 'CRISPY_ALLOWED_TEMPLATE_PACKS' , ( 'bootstrap' , 'uni_form' , 'bootstrap3' , 'bootstrap4' ) ) if ( template_pack not in ALLOWED_TEMPLATE_PACKS ) : raise template . TemplateSyntaxError ( ( "crispy tag's template_pack argument should be in %s" % str ( ALLOWED_TEMPLATE_PACKS ) ) ) return CrispyFormNode ( form , helper , template_pack = template_pack )
you need to pass in at least the form/formset object .