列表按照django admin中的自定义列表显示字段过滤

Vij*_*jay 6 python django django-admin

我有以下模特管理员.我在列表视图中显示自定义字段.

class CustomerAdmin(admin.ModelAdmin):
    list_display = ('first_name', 'last_name', 'email', 'state')
    search_fields = ('first_name', 'last_name', 'email')
    list_filter = ('state',)
    def state(self, obj):
        address = Address.objects.filter(owner=obj.id)
        if address:
            return address.state
    return None
Run Code Online (Sandbox Code Playgroud)

我试过上面但它给出了一个错误"list_filter [0]"指的是'state',它没有引用Field." 所以我希望按状态过滤记录.那我怎么能在django 1.5中做到这一点?

ary*_*yan -4

class CustomerAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'email', 'state')
list_filter = ('state',)
search_fields = ('first_name', 'last_name', 'email')

def state(self, obj):
    address = Address.objects.filter(owner=obj.id)
    if address:
        return address.state
return None
Run Code Online (Sandbox Code Playgroud)

如果你想过滤,你应该包含list_filter

  • 这不适用于自定义字段。它给出错误 CustomerAdmin.list_filter[0]' 引用“state”,但未引用字段。因为状态不是客户模型中的字段,而且地址模型和客户模型之间也没有关系。 (6认同)