Django-admin вывести список городов из связанной модели

Хочу чтобы вместо вот этого

как есть

Был нормальный выбор города

введите сюда описание изображения

Следующий код выводит на форму Django-admin нужный мне выбор, но не может сохранить результат выбора в базу, так как на вход нужен объект City, а не Int (city.pk)

class City(models.Model):
    city = models.CharField('Город', max_length=40, unique=True)


class Contact(models.Model):
    city = models.ForeignKey(City, on_delete=models.CASCADE, verbose_name='Город',
                             choices=[(obj.pk, obj.city,) for obj in City.objects.all()])
    street = models.CharField('Улица', max_length=200, default='')
    postcode = models.CharField('Почтовый индекс', max_length=6, default='')
    mobile = models.CharField('Телефон', max_length=200, default='')

Тоже не правильно:

choices=[(obj, obj.city,) for obj in City.objects.all()]

Что я делаю не так?


Ответы (1 шт):

Автор решения: svmitin

Нужно было добавить метод __str__

class City(models.Model):
    city = models.CharField('Город', max_length=40, unique=True)
    ctime = models.DateTimeField('Запись создана', default=timezone.now)

    def __str__(self):
        return self.city
→ Ссылка