Ini diperbaiki di Django 1.9 dengan form_kwargs .
Saya memiliki Formulir Django yang terlihat seperti ini:
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)
Saya menyebut formulir ini dengan sesuatu seperti ini:
form = ServiceForm(affiliate=request.affiliate)
Di mana request.affiliate
pengguna yang masuk Ini berfungsi sebagaimana dimaksud.
Masalah saya adalah saya sekarang ingin mengubah bentuk tunggal ini menjadi sebuah formset. Apa yang saya tidak tahu adalah bagaimana saya bisa meneruskan informasi afiliasi ke formulir individu ketika membuat formset. Menurut dokumen untuk membuat format dari ini saya perlu melakukan sesuatu seperti ini:
ServiceFormSet = forms.formsets.formset_factory(ServiceForm, extra=3)
Dan kemudian saya harus membuatnya seperti ini:
formset = ServiceFormSet()
Sekarang bagaimana saya bisa meneruskan afiliasi = request.affiliate ke formulir individual dengan cara ini?