在django admin中获取对象名称

Get the object name in django admin

嘿!

我想在我的管理区域中有一个营业额类别,并且在那里我有一个包含货币的字段。这是一个带有预先给定货币的下拉字段。

我的问题是,显示的不是实际货币,而是它们的 ID。 (如对象 123)。

有谁知道如何为内联解决这个问题?

# models.py

class Currency(models.Model):
    code = models.CharField(max_length=3, unique=True)
    currency = models.CharField(max_length=150, unique=True)


class Turnover(models.Model):
    currency = models.ForeignKey(Currency, on_delete=models.PROTECT)

# admin.py

class TurnoverInline(admin.TabularInline):
    model = Turnover
    extra = 1
    classes = ["collapse"]


class SomeAdmin(admin.ModelAdmin):
    form = SomeForm
    save_on_top = True

    inlines = [
        TurnoverInline
    ]

对于类似的问题,我创建了 admin.ModelAdmins 并在模型中集成了 code_str(self) 和 str(self) 方法。但是那些不是内联的,在 SomeForm/SomeAdmin 中是 fields/autocomplete_fields.

您可以在 Currency 模型中使用 __str__

class Currency(models.Model):
    code = models.CharField(max_length=3, unique=True)
    currency = models.CharField(max_length=150, unique=True)
    
    def __str__(self):
        return f'{self.code} - {self.currency}'

下拉菜单应显示此格式,而不是对象和 ID。