在 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 中不存在)的主要内容,如果未能解决你的问题,请参考以下文章
在 PayPal Payflow Link 信用卡表单中创建自定义字段
使用 Blossom 在 Magnolia CMS 对话框中创建自定义字段