我需要在 forms.py 中過濾與當前用戶來自同一家公司的員工。但是我找到的解決方案僅適用于單個 Formsets。
如果我嘗試使用 modelformset_factory 傳遞 request.user 以生成多個表單集,則會收到以下錯誤:
'MassnahmeForm' object has no attribute '__name__'
我能做什么?
最好的問候 Bostjan
視圖.py:
frm = MassnahmeForm(user=request.user)
mformset = modelformset_factory(Massnahmen, form=frm, extra=mn.count())
表格.py:
class MassnahmeForm(forms.ModelForm):
id = forms.IntegerField(widget=forms.HiddenInput())
pdca = forms.IntegerField(widget=forms.HiddenInput())
status = forms.IntegerField(widget=forms.HiddenInput())
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
print(self.user)
super(MassnahmeForm, self).__init__(*args, **kwargs)
class Meta:
model = Massnahmen
widgets = {
'massnahme': forms.Textarea(attrs={'onkeyup':'resizeTextarea()', 'rows': 3, 'style': 'margin: -5px;'
'width: 100%;'
'height: 100%;'}),
'umsetzer': forms.Select(choices=users, attrs={'style': 'width: 100%;'
'margin: 0px;'
'font-size: 100%;'
'padding: 0px'}),
'termin': forms.DateInput(attrs={'class': 'flatpickr flatpickr-input active',
'placeholder': 'Termin',
'readonly': 'readonly',
'style': 'width: 100%;'
'margin: 0px;'
'font-size: 100%;'
'padding: 0px'}),
}
fields = ('massnahme','umsetzer','termin','status')
uj5u.com熱心網友回復:
您需要在modelformset_factory 中使用表單的Class,而不是一個實體。接下來,您可以使用form_kwargsFormset中的引數。
MassnahmeFormSet = modelformset_factory(
model = Massnahme,
form = MassnahmeForm,
extra = mn.count()
)
formset = MassnahmeFormSet(form_kwargs={'user': request.user})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348913.html
上一篇:查詢集功能更強大
