Modify available choices for a multiple Django from based on current selection

I have a form that works with these base choices:

class ShockForm(forms.Form):
    sector = forms.ChoiceField(choices=[
            ('c1', 'Choice 1'),
            ('c2', 'Choice 2'),
            ('c3', 'Choice 3'),
    ])
    amount = forms.FloatField()

the form is rendered a number of times depending on the user’s previous selection, it displays n forms if n was inputed by the user on the previous screen.
I want to make the forms dynamic, ie, if an user selects one choice in the first form that choice is not available on the other form and so on, so there cannot be duplicated choices.
I belive JS is the solution for this as I am not saving every form one by one but all in one go (see views below).
However I have very little knowledge of JS and all I tried did not work. Any guidance?

Here is the template relevant content:

        <form method="post">
            {% csrf_token %}
            {% for form in shocks_forms %}
                <h4>Sector {{ forloop.counter }}</h4>
                {{ form.as_p }}
            {% endfor %}
            <button type="submit">Submit</button>
        </form>   

And here the full backend view to understan how forms are send and render:

def simulation_shocks_view(request, pk):
    simulation = get_object_or_404(Simulation, pk=pk)
    number_of_sectors_to_shock = simulation.number_of_sectors_to_shock
    
    if request.method == 'POST':
        form_list = [ShockForm(request.POST, prefix=str(i+1)) for i in range(number_of_sectors_to_shock)]
        
        if all(form.is_valid() for form in form_list):
            shocks_data = {}
            for form in form_list:
                sector = form.cleaned_data['sector']
                amount = form.cleaned_data['amount']
                shocks_data[sector] = amount
            simulation.shocks = shocks_data
            simulation.save()
            return redirect('simulation_details', pk=simulation.id)
        else:
            pass
    
    else:
        form_list = [ShockForm(prefix=str(i+1)) for i in range(number_of_sectors_to_shock)]
    
    context = {
        'shocks_forms': form_list,
    }
    return render(request, 'shock_form.html', context)