Django Admin 无法将具有多个外键的模型中的属性显示到另一个模型

Django Admin can't display attributes in a model with multiple Foreign Keys to another model

基本上我有两个模型,一个用于图标,另一个用于具有 3 个图标(业务规则)的类型。在我的 models.py 文件中,我有以下内容:

class Icon(models.Model):
    name = models.CharField(max_length=60)
    image_URL = models.CharField(max_length=255)
    modified_date = models.DateTimeField(auto_now=True)
    creation_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name
class Type(models.Model):
    name = models.CharField(max_length=60)
    modified_date = models.DateTimeField(auto_now=True)
    creation_date = models.DateTimeField(auto_now_add=True)
    icon1 = models.ForeignKey(Icon, null=True, blank=True, on_delete=models.SET_NULL, related_name="icon1")
    icon2 = models.ForeignKey(Icon, null=True, blank=True, on_delete=models.SET_NULL, related_name="icon2")
    icon3 = models.ForeignKey(Icon, null=True, blank=True, on_delete=models.SET_NULL, related_name="icon3")

    def __str__(self):
        return self.name

在我的 admin.py 文件中,我有以下内容:

class TypeAdmin(admin.ModelAdmin):
    list_display = (
        'name',
        'icon1__name',
        'modified_date',
        'creation_date',
        'id'
    )
...

admin.site.register(models.Type, TypeAdmin)

一切正常,但我无法让它显示图标名称。这适用于具有同一模型的单个外键属性的其他 类,但是这里由于同一模型的三个外键属性,我得到一个错误:

<class 'app.admin.TypeAdmin'>: (admin.E108) The value of 'list_display[1]' refers to 'icon1__name', which is not a callable, an attribute of 'TypeAdmin', or an attribute or method on 'app.Type'.

导致此错误的原因是什么?我该如何解决? FK 允许为 null(或空白),因为某些类型允许没有图标(不是必需的)。

已解决:感谢 Iain 的回答,不应该调用属性并且只将其保留为 icon1 而不是 icon1__name 因为它调用了 __str__ 方法returns 无论如何名字。