如何将计算列添加到django模型的列表页面?

时间:2015-04-13 23:14:05

标签: django templates views

我有一个模特,

class Thingie(models.Model):
    thingie_name = models.CharField(max_length=16, unique=True)
    interesting_property = models.BogusField(...) 

...并在admin.py中:

class ThingieAdmin(adimn.ModelAdmin):
    list_display = ('thingie_name', 'interesting_property')

当我查看管理页面时,我看到如下内容:

Select Thingie to change

Thingie name    | Interesting property
monkey_nuggets  | you really don't want to know
yodeling_yoda   | this is going downhill fast

我想要的是在这里有第三个字段,生成的网址:

Thingie name    | ... | For more info...
monkey_nuggets  | ... | http://foo.com/thingie/monkey_nuggets
yodeling_yoda   | ... | http://foo.com/thingie/yodeling_yoda

请注意,我不打算将人员发送到此媒体资源的编辑页面。我只需要一种方式来影响视图的呈现,这样我就可以插入一个不受数据库支持的自定义列,它只是根据其他值之一计算出来的。< / p>

1 个答案:

答案 0 :(得分:2)

您可以在模型管理员中定义一个方法来执行此操作。

class ThingieAdmin(admin.ModelAdmin):
    list_display = ('thingie_name', 'interesting_property', 'computed_property',)

    def computed_property(self, obj):
        # Do anything here
        return value
相关问题