对于那些感兴趣的人,我能够从以下 SO 讨论中提出解决方案:
如何在表单的 clean() 方法中访问请求对象或任何其他变量?
Django:从 ModelAdmin 中访问模型实例?
class InspectionRequestForm(ModelForm):
....
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(InspectionRequestForm, self).__init__(*args, **kwargs)
companyid = self.request.user.get_profile().main_contactnum.clientid.idflcustomernum
self.fields['who'].queryset = Contacts.objects.filter(clientid__exact=companyid)
我的观点:
保存表单(此处不需要包含 request=request,但以防万一)
form = InspectionRequestForm(request.POST, request=request)
或空表格
form = InspectionRequestForm(request=request)
感谢 Daniel Roseman 之前的两个答案。
https://stackoverflow.com/users/104349/daniel-roseman