Django管理员list_filter自定义字段错误

时间:2018-06-20 17:17:34

标签: django

我通过其他选项(例如部门)扩展了用户。但是,当我尝试在管理面板上为derpartment添加过滤器时。它引发此错误:

  

错误:   :(admin.E116)“ list_filter [0]”的值表示“部门”,而不是字段。

参考外观:https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#extending-user

添加以下内容:

class UserAdmin(BaseUserAdmin):
inlines = (EmployeeInline, )
list_display = ('username', 'email', 'first_name', 'last_name', 'get_department')
list_filter = ('department',)

def get_department(self, instance):
    return instance.employee.department

列表显示似乎正常。

2 个答案:

答案 0 :(得分:0)

您必须指定department所在的型号。

list_filter = ('employee__department',)

答案 1 :(得分:0)

用户模型与员工模型有关系,因此您可以从带有员工字段的用户表中访问它。员工现在是用户领域。

list_filter = ('employee__department',)
员工是楷模。 而部门是雇员的领域。 希望它对您有用我的一个在下面工作的是屏幕截图。

this is my model Screenshot  check it out.

this is admin screenshot and filters

and this is the final resutls