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

时间:2012-11-28 04:39:06

标签: 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 AAdmin(admin.ModelAdmin):
    list_display = ('key_count')
    list_filter = ('key_count')

admin.site.register(A, AAdmin)

问题

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

我想访问管理面板中的key_count。我可以在admin中看到list_display中的列,但是当我尝试在list_filter中使用它时会抛出错误。

'AAdmin.list_filter 1'指的是'key_count',它不引用字段。

最终结果

我想制作一个过滤器,显示key_count> 10

我做了什么(没有成功)

我已经尝试过在THIS博客文章

的帮助下通过管理员进行此操作

我不想要什么

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

1 个答案:

答案 0 :(得分:0)

您可以尝试为您的目的创建自定义字段类https://docs.djangoproject.com/en/dev/howto/custom-model-fields/

如果您不想编写迁移,请让南方执行此操作^^

http://south.aeracode.org/

祝你好运!