我想覆盖get_form
表格管理员中的 ,以便按当前用户进行过滤。问题是我遇到了一个错误:
object has no attribute 'current_user'
管理员.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,]
表格.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
我在非内联中使用了相同的策略并且它有效似乎没有调用get_form