Điều này đã được sửa trong Django 1.9 với form_kwargs .
Tôi có một mẫu Django trông như thế này:
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)
Tôi gọi mẫu này với một cái gì đó như thế này:
form = ServiceForm(affiliate=request.affiliate)
Người request.affiliate
dùng đã đăng nhập ở đâu. Điều này hoạt động như dự định.
Vấn đề của tôi là bây giờ tôi muốn biến dạng đơn này thành một dạng. Những gì tôi không thể tìm ra là làm thế nào tôi có thể chuyển thông tin liên kết đến các biểu mẫu riêng lẻ khi tạo biểu mẫu. Theo các tài liệu để tạo ra một định dạng về điều này, tôi cần phải làm một cái gì đó như thế này:
ServiceFormSet = forms.formsets.formset_factory(ServiceForm, extra=3)
Và sau đó tôi cần tạo nó như thế này:
formset = ServiceFormSet()
Bây giờ làm thế nào tôi có thể chuyển liên kết = request.affiliate cho các biểu mẫu riêng lẻ theo cách này?