【问题标题】:list filter by custom list display field in django admin按 django admin 中的自定义列表显示字段进行列表过滤
【发布时间】:2015-12-17 18:24:21
【问题描述】:

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

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

我在上面尝试过,但它给出了一个错误“list_filter[0]”指的是“状态”,它不是指一个字段。” 所以我想按状态过滤记录。那么我如何在 django 1.5 中做到这一点呢?

【问题讨论】:

    标签: python django django-admin


    【解决方案1】:
    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
    

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

    【讨论】:

    • 这不适用于自定义字段。它给出了一个错误 CustomerAdmin.list_filter[0]' 指的是不引用字段的“状态”。因为 state 不是 Customer 模型中的一个字段,Address 模型和 Customer 模型之间也没有关系。
    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2020-03-08
    • 2021-01-20
    • 2015-11-02
    • 1970-01-01
    • 2010-12-09
    • 2014-09-24
    • 2011-05-07
    相关资源
    最近更新 更多