Django ignores your template settings by default when rendering forms.
The error it was giving was
TemplateDoesNotExist but the template definitely did exist. Thankfully, the dev server shows which loaders it tries to use and the order. Scanning through that it wasn't using any of my apps! What?
So apparently if you're rendering a form with a custom widget by default django won't use the
TEMPLATES configuration from the
The default form renderer https://docs.djangoproject.com/en/3.1/ref/forms/renderers/#the-low-level-render-api needs changed to the
So just add this to your settings:
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
django.forms to your installed apps as described here https://docs.djangoproject.com/en/3.1/ref/forms/renderers/#django.forms.renderers.TemplatesSetting.
And then it'll find the custom form field widget template...
Hope it helps, have a good one!