ฉันมีแบบฟอร์ม Django ที่มีลักษณะเช่นนี้:
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)
ฉันเรียกแบบฟอร์มนี้ด้วยสิ่งนี้:
form = ServiceForm(affiliate=request.affiliate)
request.affiliate
ผู้ใช้ที่เข้าสู่ระบบอยู่ที่ไหน ใช้งานได้ตามที่ตั้งใจ
ปัญหาของฉันคือตอนนี้ฉันต้องการที่จะเปลี่ยนรูปแบบเดียวนี้เป็นชุด สิ่งที่ฉันไม่สามารถทราบได้คือฉันจะส่งข้อมูลพันธมิตรไปยังแต่ละฟอร์มได้อย่างไรเมื่อสร้างชุดข้อมูล ตามเอกสารที่จะสร้างชุดจากนี้ฉันต้องทำอะไรเช่นนี้:
ServiceFormSet = forms.formsets.formset_factory(ServiceForm, extra=3)
แล้วฉันต้องสร้างมันแบบนี้:
formset = ServiceFormSet()
ตอนนี้ฉันจะส่ง affiliate = request.affiliate ไปยังแบบฟอร์มส่วนตัวด้วยวิธีนี้ได้อย่างไร