【问题标题】:How to display a custom verbose_name on a GenericForeignKey in Django admin如何在 Django admin 中的 GenericForeignKey 上显示自定义的详细名称
【发布时间】:2014-05-29 08:27:05
【问题描述】:

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

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

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    如果您想在列表中显示字段的自定义名称(而不是在添加/编辑表单中),只需在 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'
    

    【讨论】:

      【解决方案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')
      

      【讨论】:

        猜你喜欢
        • 2020-06-26
        • 1970-01-01
        • 1970-01-01
        • 2020-07-10
        • 2022-06-12
        • 2012-12-04
        • 1970-01-01
        • 1970-01-01
        • 2019-08-29
        相关资源
        最近更新 更多