Django "extra_context" not being passed to form renderer when using FormView
Django version 4.1
When I pass "extra_context" to my class-based view, it seems to get filtered out before being passed to the form renderer. In the stack trace below you can see that the context item 'svg': {'id_batch': 'number'}
appears in the call of str(value)
, but it is no longer present in mark_safe(renderer.render(template, context)
The same issue is present if I use a CreateView
instead. Below are snippets of the relevant files:
# settings.py
# All of my forms are rendered with this same html snippet
from django.forms.renderers import TemplatesSetting
class CustomFormRenderer(TemplatesSetting):
form_template_name = "form_snippet.html"
FORM_RENDERER = "project.settings.CustomFormRenderer"
# forms.py
from django.forms import ModelForm
from .models import Upload
class UploadForm(ModelForm):
class Meta:
model = Upload
fields = ['batch']
# views.py
from django.views.generic import FormView
from .forms import UploadForm
class MeasurementView(FormView):
# default template will be 'assays/upload_form.html'
template_name = 'assays/upload_form.html'
form_class = UploadForm
extra_context = {'svg': {'id_batch': 'number'}}