【发布时间】:2014-05-29 08:27:05
【问题描述】:
我想在 Django admin 中为模型的 GenericForeignKey 字段显示自定义字段名称(可能已翻译)。
不幸的是,GenericForeignKey 不接受 verbose_name(至少在 Django 1.6 中),那么我该如何在管理员中实际添加自定义名称?
【问题讨论】:
标签: django django-admin
我想在 Django admin 中为模型的 GenericForeignKey 字段显示自定义字段名称(可能已翻译)。
不幸的是,GenericForeignKey 不接受 verbose_name(至少在 Django 1.6 中),那么我该如何在管理员中实际添加自定义名称?
【问题讨论】:
标签: django django-admin
如果您想在列表中显示字段的自定义名称(而不是在添加/编辑表单中),只需在 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'
【讨论】:
我试图避免使用@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')
【讨论】: