在 Django Admin 中创建自定义显示字段(models.py 中不存在)

Posted

技术标签:

【中文标题】在 Django Admin 中创建自定义显示字段(models.py 中不存在)【英文标题】:Creating Custom Display Fields in Django Admin (that don't exist in models.py) 【发布时间】:2020-04-30 17:02:36 【问题描述】:

我在models.py 中有两个字段

numberOfUsers = IntegerField()
numberOfUserCredits = IntegerField()

在 Django admin 中,而不是使用

查看两列

list_display = ['numberOfUsers', 'numberOfUserCredits']

我想稍微清理一下并将这两个字段连接起来以便于查看:

str(numberOfUsers) + '/' + str(numberOfUserCredits)

如何在 Django admin 中创建这样的自定义字段?我可以在models.py 中创建一个新字段,在模型保存时自动创建此字段,但我想知道是否有更简单的方法来执行此操作。


我发现similar question 已经问过了,但下面的答案正是我想要的。

【问题讨论】:

【参考方案1】:

您可以将其添加到您的 ModelAdmin 类中,如下所示,我也建议使用 f strings 而不是串联

class SomeAdmin(admin.ModelAdmin):
    list_display = (..., 'user_field')

    def user_field(self, obj):
        return f'obj.numberOfUsers/obj.numberOfUserCredits'
    user_field.short_description = 'userShort'

【讨论】:

这正是我想要的。谢谢!

以上是关于在 Django Admin 中创建自定义显示字段(models.py 中不存在)的主要内容,如果未能解决你的问题,请参考以下文章

在自定义页面中创建自定义路由

Django中创建自定义标签与过虑器

在 PayPal Payflow Link 信用卡表单中创建自定义字段

使用 Blossom 在 Magnolia CMS 对话框中创建自定义字段

Django-Admin 和 Django-Summernote 在我的表单中创建一个文件字段

如何在 MVC4 的 UserProfile 中创建自定义附加字段