Django models 在Django/Python中将函数作为字段添加到模型中

Django models 在Django/Python中将函数作为字段添加到模型中,django-models,python-2.7,django-admin,django-1.3,django-admin-filters,Django Models,Python 2.7,Django Admin,Django 1.3,Django Admin Filters,型号 class A(SiteAwareModel): name = models.CharField(max_length = 255, blank = False) description = models.TextField(blank = True, null = True) class Meta: def key_count(self): return B.objects.count(self) 管理 class A

型号

class A(SiteAwareModel):

    name = models.CharField(max_length = 255, blank = False)
    description = models.TextField(blank = True, null = True)

    class Meta:
        def key_count(self):
            return B.objects.count(self)
管理

class AAdmin(admin.ModelAdmin):
    list_display = ('key_count')
    list_filter = ('key_count')

admin.site.register(A, AAdmin)
问题

我有一个模型a,它有自己的字段(名称、描述)。此外,模型A使用模型B(无外键关系)计算密钥计数

我想访问管理面板中的密钥计数。我可以在管理列表中看到一列,这意味着列表显示可以工作,但当我尝试在列表过滤器中使用它时,它会抛出一个错误

“AAdmin.list\u filter”指的是“key\u count”,它不指字段

最终结果

我想做一个过滤器,它将显示键数>10

我所做的(没有成功)

我已经尝试过在博客帖子的帮助下通过管理者来做这件事

我不想要的


我不想通过编写新的迁移来更改模型。

您可以尝试创建一个自定义字段类

如果你不想写迁移,就让south来写吧^^


祝你好运

这个问题只针对django 1.3?如果没有外键关系,A和B之间的关系是什么?您能显示“B”字段吗?具体来说,我使用的是django 1.3.4。两个表之间没有FK关系。B包含一些公共字段,比如名称(CharField)和类型(IntegerField)