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)

enter image description here

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'}}

Back to Top