我有一个返回数值的模型函数。我希望能够按该值进行过滤和排序。当我尝试将它添加到list_filter
Django 时抱怨模型没有这样的字段。我可以告诉 Django 将其视为一个字段吗?如果是这样,怎么做?
问问题
185 次
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 回答