0

我有一个返回数值的模型函数。我希望能够按该值进行过滤和排序。当我尝试将它添加到list_filterDjango 时抱怨模型没有这样的字段。我可以告诉 Django 将其视为一个字段吗?如果是这样,怎么做?

4

2 回答 2

0

您是否尝试将其用作类属性,尽管我没有尝试过?

class SomeModel(models.Model):
    @property
    def list_filter(self):
        """ Do your stuffs here """
于 2013-04-03T03:48:54.473 回答
0

您可以编写自定义过滤器并将其传递给list_filter

from django.contrib.admin import SimpleListFilter

class CustomFilter(SimpleListFilter):
    # Human-readable title which will be displayed in the
    # right admin sidebar just above the filter options.
    title = _('active status')

    # Parameter for the filter that will be used in the URL query.
    parameter_name = 'status'

    def lookups(self, request, model_admin):
        if request.user.is_superuser:
            return (
                ('active', _('Active')),
                ('not_active', _('Not Active')),
            )

    def queryset(self, request, queryset):
        # do something here with queryset

class MyAdmin(admin.ModelAdmin):
    list_filter = (CustomFilter, 'other_model_field')

请参阅此处了解更多信息ModelAdmin.list_filter

于 2013-04-03T03:51:26.490 回答