Получение имени объекта в админке django

Hej!

Я хочу иметь категорию для оборотов в моей админке и в ней у меня есть поле с валютой. Это выпадающее поле с заранее заданными валютами.

Моя проблема в том, что отображаются не реальные валюты, а их идентификаторы. (например, объект 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). Но это не Inlines и в SomeForm/SomeAdmin как fields/autocomplete_fields.

Вы можете использовать __str__ в модели Currency:

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.

Вернуться на верх