I want to override the get_form
in a tabular admin in order to filter by current user.
The thing is that I'm getting a error:
object has no attribute 'current_user'
Admin.py
class InvoiceDetail(admin.TabularAdmin): form = InvoiceDetailForm model = fa_invoice_lines def get_form(self, request, obj=None, **kwargs): form = super(InvoiceDetail, self).get_form(request, obj, **kwargs) form.current_user = request.user return form class Invoice(admin.ModelAdmin) form = InvoiceForm inlines = [InvoiceDetail,]
Form.py
class InvoiceDetailForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(InvoiceDetailForm, self).__init__(*args, **kwargs) self.fields['item'].queryset = fa_items.objects.filter(tenant=self.current_user) class Meta: model = fa_invoice_lines
I have used the same strategy in not inlines and it works
It seems is not calling the get_form