我想在 Django admin 中为模型的GenericForeignKey
字段显示自定义字段名称(可能已翻译)。
不幸的是,GenericForeignKey
不接受verbose_name
(至少在Django 1.6中),那么我如何在管理员中实际添加自定义名称?
答案 0 :(得分:2)
如果您想在列表中显示字段的自定义名称(而不是添加/编辑表单),请在admin.py中尝试此操作
class YourModelAdmin(admin.ModelAdmin):
list_display = ('field1', 'custom_field')
def custom_field(self, obj):
return obj.real_field
custom_field.short_description = u'Custom name'
答案 1 :(得分:2)
我试图避开@ kirill-kartashov的方法,所以我尝试了short_description
属性。
我发现,显然你可以添加一个short_description
attr。直接到GenericForeignKey就像这样:
from django.db import models
from django.utils.translation import ugettext_lazy as _
class SomeModel(models.Model):
content_type = models.ForeignKey(ContentType, null=True)
object_id = models.CharField(max_length=32, null=True)
related_field = generic.GenericForeignKey('content_type', 'object_id',)
related_field.short_description = _('My related field')