[Fixed]-Python. Django. Change feeds of form from get_context_data in CreateView

1👍

You need to pass the choices / queryset to your form.

in OutputCreateView

def get_form_kwargs(self, *args, **kwargs)
    filter_key = self.kwargs['rc']).pk
    return {'filter_key': key}

Like this, it will give an error in when your form gets created, because of the unexpected argument. To get around that and to make use of it, override the init method.

In your OutputForm

def __init__(self, *args, **kwargs)
    kwargs.pop('filter_key')
    super()._init__(*args, **kwargs)
    self.fields['value'] = forms.Select(queryset=Activity.objects.filter(rc_ref=ResultsChain.objects.get(pk=self.kwargs['rc']).pk), 
                                        attrs={"onChange":'select_changed()', 'class':'selector'})

You don’t need to set the widgets value, as it is being done in the init method.

Leave a comment