Выпадающий иностранный ключ в Admin возвращает __str__, могу ли я изменить его на другой столбец? [дубликат]

Вот моя установка:

# myapp.models
class Country(models.Model):
  alpha2 = models.CharField(primary_key=True, max_length=2),
  name = models.CharField(max_length=64,

  def __str__(self):
    return "%(alpha2)s %(name)s" % {"alpha2": self.alpha2, "name", self.name}

class Address(models.Model):
  id = models.BigAutoField(primary_key=True)
  province = models.CharField(max_length=64)
  country = models.ForeignKey(Country, on_delete=models.PROTECT)
# myapp.admin
from django.contrib import admin
from .models import Address, Country

admin.site.register(Address)
admin.site.register(Country)

Когда я захожу на http://localhost:8000/admin и перехожу к add new Address, в выпадающем списке стран отображается вывод Country().__str__ (т.е. IN India). У меня 2 вопроса:

  1. Я полагаю, что смогу выбирать, что показывать в выпадающем списке, если напишу свою собственную форму (не изменяя __str__). Верно ли это?
  2. Могу ли я изменить то, что я хочу показать в админпанели, не изменяя __str__?
Вернуться на верх