如何在Django admin中的GenericForeignKey上显示自定义verbose_name

时间:2014-05-29 08:27:05

标签: django django-admin

我想在 Django admin 中为模型的GenericForeignKey字段显示自定义字段名称(可能已翻译)。

不幸的是,GenericForeignKey不接受verbose_name(至少在Django 1.6中),那么我如何在管理员中实际添加自定义名称?

2 个答案:

答案 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')