Получение имени объекта в админке 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.