【发布时间】:2015-03-08 06:21:42
【问题描述】:
我想在表格管理员中覆盖get_form,以便按当前用户进行过滤。
问题是我遇到了一个错误:
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
我在非内联中使用了相同的策略并且它有效
好像没有调用get_form
【问题讨论】:
-
我看到提供了“一些帮助”,但我也明白它不被欣赏甚至不被接受。
标签: python django django-admin inlines