Bu, Django 1.9'da form_kwargs ile düzeltildi .
Şöyle bir Django formu var:
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)
Bu forma şöyle bir şey diyorum:
form = ServiceForm(affiliate=request.affiliate)
Giriş request.affiliate
yapan kullanıcı nerede . Bu amaçlandığı gibi çalışır.
Benim sorunum şimdi bu tek formu bir form kümesine dönüştürmek istiyorum. Anlayamadığım şey, form seti oluştururken bağlı kuruluş bilgisini bireysel formlara nasıl aktarabileceğim. Bundan bir kalıp yapmak için belgelere göre böyle bir şey yapmam gerekiyor:
ServiceFormSet = forms.formsets.formset_factory(ServiceForm, extra=3)
Ve sonra böyle yaratmalıyım:
formset = ServiceFormSet()
Şimdi nasıl affiliate = request.affiliate bireysel formlara bu şekilde geçirebilirim?