J'ai un formulaire Django qui ressemble à ceci :
class ServiceForm(forms.Form):
option = forms.ModelChoiceField(queryset=ServiceOption.objects.none())
rate = forms.DecimalField(widget=custom_widgets.SmallField())
units = forms.IntegerField(min_value=1, widget=custom_widgets.SmallField())
def __init__(self, *args, **kwargs):
affiliate = kwargs.pop('affiliate')
super(ServiceForm, self).__init__(*args, **kwargs)
self.fields["option"].queryset = ServiceOption.objects.filter(affiliate=affiliate)
J'appelle ce formulaire avec quelque chose comme ceci :
form = ServiceForm(affiliate=request.affiliate)
Où request.affiliate
est l'utilisateur connecté. Cela fonctionne comme prévu.
Mon problème est que je veux maintenant transformer ce formulaire unique en un jeu de formulaires. Ce que je n'arrive pas à comprendre, c'est comment transmettre les informations d'affiliation aux formulaires individuels lors de la création du jeu de formulaires. D'après la documentation, pour créer un jeu de formulaires, je dois faire quelque chose comme ceci :
ServiceFormSet = forms.formsets.formset_factory(ServiceForm, extra=3)
Et ensuite je dois le créer comme ceci :
formset = ServiceFormSet()
Maintenant, comment puis-je passer affiliate=request.affiliate aux formulaires individuels de cette façon ?